Vue2入门指南-05 Vue实例的生命周期(快速上手vue)

2,237 阅读3分钟

生命周期钩子 = 生命周期函数 = 生命周期事件

实例创建期间的生命周期函数

// 刚初始化了一个空的实例对象, 这时候只有默认的一些生命周期函数和默认事件, 其他都未创建。
// 如果要调用 methods 中的方法, 或者操作 data 中的数据, 最早只能在 created 生命周期函数中操作
new Vue({
    el: "#app",
    // 在这个生命周期函数执行的时候,data和methods中的数据都还没有初始化
    beforeCreate () {}, // 表示实例完全被创建之前, 会执行这个函数
    // 在这个生命周期函数执行的时候,data和methods中的数据都已经初始化好了
    created () {} // 表示实例被创建之后, 会执行这个函数
})

查看Vue生命周期图例, 这里表示Vue开始编译模板, 把Vue代码中的那些指令进行执行, 最终在内存中生成一个编译好的最终模板字符串, 然后把这个字符串渲染为内存中的DOM,此时, 只是在内存中渲染好了模板, 并没有把模板挂载到真正的页面中。

运行期间的生命周期函数

new Vue({
    el: "#app",
    // 在这个生命周期函数执行的时候,页面中的元素还没有被真正的替换过来,只是之前写的一些模板字符串
    beforeMounted () {}, // 表示模板已经编译完成,但是还没有把模板渲染到页面中
    
    // 表示模板已经编译完成,内存中的模板已经真实的渲染到了页面中去,已经可以看到渲染好的页面了
    // 注意: mounted是实例创建期间的最后一个生命周期函数,当执行完mounted生命周期函数就表示,
    // 实例已经被完全创建好了,此时如果没有其他操作的话,这个实例就在内存中一动不动
    // 注意: 如果要通过某些插件操作页面上的DOM节点,最早要在mounted生命周期中操作
    mounted () {} 
    
    // 上面的是组件的创建阶段,接下来进入组件的运行阶段
    // 在这个生命周期函数执行的时候,页面中显示的数据还是旧的,但是data中的数据是最新的,
    // 页面尚未和最新的数据保持同步
    beforeUpdate () {} // 表示当前界面还没有被更新,数据肯定被更新了
    // 查看Vue生命周期图例,这里表示先根据data中最新的数据在内存中重新渲染出一份最新的内存DOM树当最新的
    // 内存DOM树更新之后会把最新的内存DOM树重新渲染到真实的页面中去这时候就完成了数据从data(model层)
    // 到view(视图层)的更新
    updated () {} // 表示当前页面和数据保持同步了,都是最新的
})

销毁期间的生命周期函数

走到这里已经进入组件的销毁阶段了

new Vue({
    el: "#app",
    // 在这个生命周期函数执行的时候.实例身上所有的data和methods以及过滤器、指令等等都是可用状态,还没有
    真正的执行销毁的过程
    beforeDestroy () {}, // 表示Vue实例已经从运行阶段进入到销毁阶段
    // 在这个生命周期函执行的时候,组件中的data和methods以及过滤器、指令等等都已经不可用了
    destroyed(){} // 表示组件已经完全被销毁了
})

关于Vue中的生命周期函数, 这里我尽可能的把我自己的理解和认知写了出来, 如果有不对或者不完善的地方请留言告知我。

Vue入门指南(快速上手vue)