Vue.js 生命周期总结

  一、前言     

  每个Vue应用都是从创建一个Vue实例开始的,Vue的生命周期也是Vue实例从被开始创建到结束的过程,借用官网的一段话:每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。

        生命周期钩子函数有哪些并且各自有什么作用呢?请看下面:

 二、生命周期钩子函数

    1.beforeCreate    

         实例初始化后调用,这里拿不到el,data数据。

    2. created

         在实例创建之后,这里可以访问到data中的数据了。

         适用于发请求,修改data中的数据。

         这里没有挂载,还拿不到el。 

    3. beforeMount

         挂载元素之前,还没渲染DOM。

    4. mounted

         挂载渲染已完成,数据渲染已完成更新。但子组件不保证全部挂载完了。如果你希望等到整个视图都渲       染完毕,可以用 vm.$nextTick 替换掉 mounted

    5. beforeUpdate

         数据更新时调用,DOM还没得到更新。这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件       监听器。该钩子在服务器端渲染期间不被调用,因为只有初次渲染会在服务端进行。


    6. updated

         数据更新之后调用,DOM已得到更新。如果要相应状态改变,通常最好使用计算属性或 watcher 取而代       之。注意 updated 不会承诺所有的子组件也都一起被重绘。如果你希望等到整个视图都重绘完毕,可以         用 vm.$nextTick 替换掉 updated

    7. activated

        组件**时调用,和动态组件有关系。keep-alive 组件**时调用。

    8. deactivated

        组件停用时调用,和动态组件有关系。keep-alive 组件停用时调用。

    9. beforeDestroy

        实例销毁之前,销毁不是删除实例,只是不给管理了。在这一步,实例仍然完全可用。

   10. destroyed

        实例销毁之后,也就是不在管理了。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会       被移除,所有的子实例也会被销毁。

   11. errorCaptured

        在组件内部,比如可以捕获来自子组件的错误。此钩子会收到三个参数:错误对象、发生错误的组件实例       以及一个包含错误来源信息的字符串。此钩子可以返回 false 以阻止该错误继续向上传播。


  三、生命周期图示

    Vue.js 生命周期总结