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 生命周期总结 的全部内容, 来源链接: utcz.com/z/377559.html