生命周期

vue生命周期

组件挂载阶段

  1. new Vue() 表示开始创建一个vue的实例对象

  2. 初始化事件和生命周期

    表示刚初始化了一个vue的实例对象,这时对象上只有一些默认的生命周期和默认的事件。

  3. beforecreated生命周期执行时,datamethods中的数据都还没有初始化。

  4. 初始化注入并检验。

  5. created生命周期中,datamethods 都以及被初始化好了。如果要操作data中的数据,最早可以在这个生命周期中操作。

  6. 判断实例中是否有el选项。这里表示vue开始编辑模板,把vue代码中的那些指令执行,最终在内存中生成一个编译好的最终模板字符串。然后把这个模板字符串渲染为内存中的DOM(虚拟DOM)。此时只是在内存中渲染好了模板,并没有把模板挂载到真正的DOM中。

  7. render函数

render(h){
    return h('div', {}, this.text)
}
// h是vue中的createElement方法
// 第一个参数是标签
// 第二个参数是一个对象,对象可以是组件上的props或者是事件之类的东西
// 第三个元素是类似div标签里面的元素
  1. beforeMount函数执行时,模板已经在内存中编译好了,但是尚未挂载到页面上,所以此时的页面内容还是旧的。

  2. 创建vm.$el 并用其替换"el" 将内存编译好的模板真实的替换到浏览器页面

  3. mounted生命周期执行时,真实的DOM已经挂载好了,组件进入了运行阶段。如果要对DOM进行操作,最早可以在这个生命周期。

组件更新阶段

  1. data变化时,根据data中数据,内存中重新渲染出最新的虚拟DOM,把虚拟DOM渲染到真实DOM中。

  2. beforeUpdate生命周期时,页面中的数据还是旧的,但是data已经是最新的。

  3. updated生命周期时, 页面和数据都是最新的,更新完毕。

组件卸载阶段

  1. beforeDestory生命周期时,vue组件由运行阶段进入了卸载阶段,实例上所有的data和所有的methods以及过滤器,指令都处于可用状态,此时还没有真正的执行销毁的过程。

  2. destroyed生命周期时,组件已经被完全销毁了,此时组件中的所有数据,方法,指令都已经不可用了。

错误处理

在整个的过程中,vue还为我们提供了renderError方法,这个方法只有在开发阶段的时候被调用,在正式打包上线时不会被调用,主要可以帮助我们进行开发阶段的调试工作。

上次更新时间: 2020-03-04 11:14:00