生命周期
- 生命周期又称生命周期回调函数、生命周期函数、生命周期钩子
- 生命周期是Vue在关键时刻帮我们调用的一些特殊名称的函数
- 生命周期函数中的this指向vm或组件实例对象
1. 生命周期参考图
常用的生命周期钩子:
1.mounted:发送ajax请求、启动定时器、绑定自定义事件、订阅消息等【初始化操作】。
2.beforeDestroy:清除定时器、解绑自定义事件、取消订阅消息等【收尾工作】
关于销毁Vüe实例
1.销毁后借助Vue开发者工具看不到任何信息。
2.销毁后自定义事件会失效,但原生DOM事件依然有效。
3.一般不会在beforeDestroy操作数据,因为即便操作数据,也不会再触发更新流程
2. 生命周期函数介绍
beforeCreate
- 在实例初始化之后,进行数据侦听和事件/侦听器的配置之前同步调用
created
- 在实例创建完成后被立即同步调用
- 此时实例已完成对选项的处理,即数据侦听、计算属性、方法、事件/侦听器的回调函数已配置完毕
beforeMount
- 在挂载开始之前被调用:相关的
render
函数首次被调用 - 在服务器端渲染期间不被调用
#####mounted
-
实例被挂载后调用
-
作用:用来做发送ajax请求、启动定时器、绑定自定义事件、订阅消息等初始化操作
-
在服务器端渲染期间不被调用
beforeUpdate
-
在数据发生改变后,DOM 被更新之前被调用
-
适合在现有 DOM 将要被更新之前访问它,比如移除手动添加的事件监听器
-
在服务器端渲染期间不被调用,因为只有初次渲染会在服务器端进行
#####updated
- 在数据更改导致的虚拟 DOM 重新渲染和更新完毕之后被调用
- 如果要在次阶段改变状态,通常最好使用计算属性或 watcher
- 在服务器端渲染期间不被调用
beforeDestroy
-
实例销毁之前调用。在这一步,实例仍然完全可用
-
note:在此阶段操作数据,也不会再触发更新流程
-
作用:用来做清除定时器、解绑自定义事件、取消订阅消息等收尾工作
-
在服务器端渲染期间不被调用
destroyed
-
实例销毁后调用
-
作用:对应 Vue 实例的所有指令都被解绑,所有的事件监听器被移除,所有的子实例也都被销毁
-
销毁后借助Vue开发者工具看不到任何信息
-
销毁后自定义事件会失效,但原生DOM事件依然有效
-
在服务器端渲染期间不被调用