vue的生命周期

Vue.js生命周期详解
本文详细介绍了Vue实例从创建到销毁的整个过程,包括new Vue()实例化、初始化事件和生命周期、beforeCreate、created、el属性与挂载、模板编译、beforeMount、mounted、数据变化监听、beforeUpdate、updated、beforeDestroy和destroyed等关键步骤。

第一步:实例化Vue对象

new Vue()

通过 new Vue() 实例化Vue对象

第二步:初始化事件和生命周期

init Events & init Lifecycle

初始化事件 和 生命周期

:创建实例之前执行的钩子事件

beforeCreate

这个时候数据还没有挂载,只是一个空壳。
无法访问数据和$el
computed 和 watch 的数据不能访问

第三步:初始化注入

init injections & init reactivity

初始化注入事件 和 反射

实例创建完成后执行钩子事件

created

可以进行数据的观测和使用
属性和方法的运算
但是挂载还没开始,模板还没有渲染成 html

第四步:判断 el 的挂载方式

el 属性 选定挂载范围

没有 el 属性 则使用 vm.$mount(el) 挂载

第五步:选择 模板template 的编译方式

编译模板 把data对象里的数据
和vue语法声明的模板
编译成浏览器可读的HTML

render

template

:触发钩子事件beforeMount

虚拟DOM创建完成,
将编译完成的HTML挂载到虚拟DOM
还没有渲染到页面,只是准备进行渲染,先把位置占住

第六步:将编译好的HTML替换掉el所指向的DOM

:触发mounted 钩子事件

将编译好的HTML挂载到页面 真实的DOM挂载完毕,
数据完成双向绑定,可以访问DOM节点,
使用$refs对DOM进行操作
这个函数可以写一些 进行ajax请求数据 和 进行数据初始化
注意:这个事件在整个实例中只执行一次

第七步:实时监控数据变化 (循环)

当有更新时会在更新之前 调用beforeUpdate

响应式数据发生更新,dom还没有刷新

更新到dom上

更新完后 调用updated

这说明响应式数据发生了更新,更新完了 dom已经刷新了

第八步:实例销毁 销毁之前执行beforDestroy

这个时候实例可以被使用,可以进行收尾工作
例如清除计时器

执行销毁 拆除数据监听 子组件和事件监听

最后调用 destroyed 说明实例销毁完成

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值