一、大过程:beforeCreate、created、beforeMounted、mounted、beforeUpdate 、updated 、beforeDestroy 、destroyed
二、详细步骤如下:
1、首先创建一个VM实例,即new Vue()
2、Init Events & Lifecycle,(初始化:生命周期、事件,但数据代理还未开始)
3、beforeCreate(此时:无法通过VM访问到data中的数据、methods中的方法)
4、Init injections & reactivity (初始化:数据检查、数据代理)
5、created(此时:可以通过VM访问到data中的数据、methods中配置的方法)
6、解析Vue模板,生成虚拟DOM,存放到内存中,页面还不能显示解析好的内容
7、beforeMount(此时:<1>页面呈现的是未经Vue编译的DOM结构;<2>所有对DOM的操作,最终都不凑小)
8、Create VM.$SET and replace 'el' with it (将内存中的 虚拟DOM 转为 真实DOM 插入页面)
9、mounted(此时:<1>页面中呈现的是经过Vue编译的DOM; <2>对DOM的操作均有效。 至此初始化过程结束,一般在此进行:开启定时器、发送网络请求、订阅消息、绑定自定义事件等初始化操作)
10、beforeUpdate(此时:数据是新的,但页面是旧的,即:页面尚未和数据保持同步)
11、Virtual DOM re-render and patch (根据新数据,生成新的虚拟DOM,随后与旧的DOM进行比较,最终完成页面更新,即:完成了Model--》View的更新)
12、updated(此时:数据是新的,页面也是新的,即:页面和数据保持同步)
13、beforeDestory(此时:VM中所有的data、methods、指令等,都可以处于可用状态,马上要执行销毁过程,一般在此阶段:关闭定时器、取消订阅消息、解绑自定义时间等收尾操作)
14、destoryed(完全销毁实例,即:清理它与其它实例的连接,解绑它的全部指令及时间监听器)
PS:本文章基于Vue2,Vue3生命周期与Vue2相比,略有差异。
我草,朕居然看完了,牛逼的狠,一会儿吃饭给自己加个鸡腿吧。