一、vue 生命周期函数
vue提供了一系列的生命周期
函数供我们在需要的时候使用
这些函数会在恰当的时机被自动
调用
beforeCreate
- 实例被创建, 但
数据
还未进行观察, 实例身上也无法访问数据 - 可以认为MVVM模式中的
VM
已初始化完毕 - 这些函数内的
this
指向当前
组件
可以在函数里面加一些 log,或者提示信息类的东西
因为该函数执行,vue仅仅是刚刚初始化了这个组件,还没有对数据进行监听,所以组件实例 this 是不能使用数据的。(就是data里面的数据)
1 | Vue.component('app-header', { |
created
- 实例被创建, 数据已经被监听, 所以在实例身上也可以访问数据了
- 可以认为MVVM模式中的
M
已初始化完毕 - 该函数使用
频率
比较高, 一般的数据初始化
操作就写在这里, 比如发送ajax
请求
1 | Vue.component('app-header', { |
beforeMount
- 模版已编译好,但视图还没有进行渲染,未插入到页面中
- 可以认为MVVM模式中的
V
已初始化完毕
1 | Vue.component('app-header', { |
mounted
- 模版已插入页面,
this.$el
属性被创建 - 项目已经
成功
运行, 从这个函数开始可以进行DOM
操作了
1 | Vue.component('app-header', { |
beforeUpdate
- 数据被修改, 但
视图
还未重新渲染 - 在这个函数中, 可以根据
数据
变化做进一步修改处理
只要有数据变化就会执行,不用特意去监听某个数据,这个时候视图还没有更新 。在这里可以根据数据的变化,看看要不要有其它特殊逻辑处理。
1 | Vue.component('app-header', { |
updated
- 数据被修改,
视图
也更新完毕 - 在这个函数中, 可以对更新后的视图进行
DOM
操作
1 | Vue.component('app-header', { |
beforeDestroy
- 实例/组件销毁前执行
1 | <div id="app"> |
1 | Vue.component('app-header', { |
destroyed
- 实例/组件销毁后执行,所有绑定都已解除
- 在这个函数中可以释放一些资源
1 | <div id="app"> |
1 | Vue.component('app-header', { |