事务发展 从开始到结束 就是一个完整的生命周期
钩子hook 通知 => 执行 预先准备好 触发就做
回调callback 等待 => 执行
Vue实例的生命周期 beforeCreate => created => beforeMount => mounted => beforeUpdate => updated => beforeDestroy => destroyed
创建阶段 beforeCreate => created => beforeMount => mounted
在beforeCreate之前 vue需要将自身属性 方法规则初始化(Events 渲染规则 render 等)
beforeCreate 实例刚在内存中创建出来 还没有初始化data和methods 只包含一些自带生命周期函数
之后进行Model绑定 状态初始化 方法初始化
created 实例已经在内存中创建完成 此时data和methods已经创建完成
之后 寻找模板进行编译
beforeMount 此时已经完成了模板的编译 只是还没有渲染到界面中去 $el 是没创建的
mouted 模板已经渲染到了浏览器 创建阶段结束
beforeUpdate 界面中的数据还是旧的 但是data数据已经更新 页面中和data还没有同步
中间过程:先根据data中的数据 在内存中渲染出一个新的dom 当新的dom树更新后 会重新渲染到真实的界面中去 从而实现了从数据层model 到视图层view的转换
updated 页面重新渲染完成 页面中的数据和data保持一致
注意:updated不一定就在浏览器页面上实际渲染完成,DOM渲染的线程是GUI线程 GUI线程和js主线程是互斥的
beforeDestroy 已经进入销毁阶段 但是实例上的各种数据还处于可用状态
destroyed 组件已经全部销毁 vue实例已经被销毁 vue中的任何数据都不可用