new Vue() 表示开始创建一个Vue的实例对象
|
Init Events & Lifecycle
表示刚初始化了一个空的Vue 的实例对象,这时候的这个对象身上,只有默认的一些生命周期函数和默认的事件,其他的东西都未创建
| 这个时候就是beforeCreate() (这个时候data和methods都还没初始化)
Init injections & reactivity
| 这个时候是created (这个时候data和methods都初始化了)
一堆创建初始化模板的操作(但还没挂载 mount),把Vue代码中的指令进行执行,最终在内存中生成一个编译好的最终模板,然后把这个模板字符串渲染为内存中的DOM,此时只是渲染好了模板,并没有把模板挂载到真正的页面当中去。
| 这个时候是beforeMount() (这个时候页面中的元素还没有真正替换过来,只是之前写的一些模板字符,资源还是旧的
创建vm.$el并用其替换el
| 这个时候是mounted (创建期间的最后一个生命周期函数)当执行完这个函数就意味着实例已经完全创建好了,此时如果没有其他的操作,这个实例就暂时没动作,最早开始操作DOM节点的地方
组件运行期间
data被修改了 --> beforeUpdate()此时界面中的数据还是旧的--> 虚拟DOM重新渲染并应用更新 --> update()
这里的两个事件会根据data 数据的改变有选择性的触发0次到多次
组件销毁阶段
beforeDestroy --> 解除绑定销毁子组件以及事件监听器 --> 销毁完毕 =destroy
beforeD的时候是从运行阶段到了销毁阶段,但methods,data...都还能用
destroy时所以方法数据都不能用了