Vue 生命钩子函数

<body>

<script src="../libs/vue.js"></script>

<div id="app">

    {{message}}

    <h3 id="h3">{{message}}</h3>

    <button @click="message = 'No'">改变数据</button>

</div>

<script>

    var app = new Vue({

        el: '#app',

        data: {

            message: 'ok',

        },

        methods: {

            show() {

                console.log("-----show-----被调用")

            }

        },

        //第一个生命周期钩子函数:在实例完全初始化之前,data,methods初始化之前调用

        beforeCreate() {

            console.log('=====beforeCreate=====')

            // console.log(this.message)

            // this.show()

        },

        //初始化data,和初始化methods

        //第二个生命周期钩子函数: 是data methods初始化完成之后调用的函数

        created() {

            console.log('=====created=====')

            // console.log(this.message)

            // this.show()

        },

        //vue开始编译模板,vue指令开始执行,此时,在内存中渲染了模板,没有挂载到页面上。

        //第三个生命周期钩子函数:模板已经在内存中渲染了,但是还没有挂载到页面上

        beforeMount() {

            console.log('=====beforeMount=====')

            //通过Id查找某个元素

            //innerText 拿到标签中的全部文本内容

            // var text = document.getElementById('h3').innerText

            // console.log('beforeMount',text)

        },

        //内存中的模板,替换到了页面中

        //第四个生命周期钩子函数:已经挂载到页面上

        mounted() {

            console.log('=====mounted=====')

            // var text = document.getElementById('h3').innerText

            // console.log('mounted',text)

        },

        //创建阶段:1,2,3,4(4个钩子函数)

        //mounted执行完之后,Vue实例已经创建完成。创建的最后一个生命周期钩子是mounted

        //运行阶段:5,6(两个钩子函数)

        //最少执行0次,最多执行无数次

        //第五个生命周期钩子函数: 页面还没有更新,,数据已经更新了

        beforeUpdate() {

            console.log('=====beforeUpdate=====')

            // var text = document.getElementById('h3').innerText

            // console.log('text',text)

            //

            // console.log('message',this.message)

        },

        //现根据data中的新数据,重新渲染内存中的DOM,在渲染到页面

        //第六个生命周期钩子函数:页面和数据都已经更新了

        updated() {

            console.log('=====updated=====')

            var text = document.getElementById('h3').innerText

            console.log('text', text)

            console.log('message', this.message)

        },

        //销毁阶段:7,8

        //第七个生命周期钩子函数:Vue实例进步销毁阶段,所有的data和methods、指令。。。都处于可用的状态

        //没有执行真正的销毁过程

        beforeDestroy() {

            console.log('=====beforeDestory=====')

        },

        //第八个生命周期函数:组件已经被销毁,所有的data、methods、指令都已经不可以

        destroyed() {

            console.log('=====destroyed=====')

        }

        //练习:创建Vue执行什么生命周期钩子函数

        //  =====beforeCreate=====

        //  =====created=====

        //  =====beforeMount=====

        //  =====mounted=====

        //修改data里的数据都执行什么生命周期钩子函数

        // =====beforeUpdate=====

        // =====updated=====

    })

</script>

</body>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容