Vue的生命周期
对于使用Vue实现页面的交互,我们必须要知道Vue从创建到销毁的整个生命周期,了解了Vue的生命周期,才知道我们编写的代码应该放在什么时候执行。
值得注意的是所有的生命周期钩子函数自动绑定this(也就是当前Vue对象)上,因此你可以在钩子函数中直接访问数据,属性和方法进行运算。
官方Vue生命周期图:
对应Vue对象状态
Vue生命周期:核心八个阶段
Vue生命周期(对应的也是方法) | 解释 |
---|---|
beforeCreate | vue对象创建前 |
created | vue对象创建后 |
beforeMount | 挂载前(页面渲染前) |
mounted | 挂载后(页面渲染后) |
beforeUpdate | 更新前(vue对象中的属性进行更新前) |
updated | 更新后(vue对象中的属性进行更新后) |
beforeDestroy | vue对象销毁前 |
destroyed | vvue对象销毁后 |
生命周期(钩子函数)解释
生命周期方法也就叫钩子函数。
特别说明:挂载完成就是页面渲染完成。
- beforeCreate
- 官方说明:在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。
- 解释:这个时期,this变量还不能使用,在data下的数据,和methods下的方法,watcher中的事件都不能获得到,页面也没挂载。
- created
- 官方说明:实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。
- 解释:这个时候可以操作vue实例中的数据和各种方法,但是还不能对"dom"节点进行操作;
- beforeMounte
- 官方说明:在挂载开始之前被调用:相关的 render 函数首次被调用。需要注意的是在这步,this.$el可以获得。但仅仅获得是dom节点,{{}}里的值并没有渲染,详见上图控制台图
- mounted
- 官方说明:
el
被新创建的vm.$el
替换,并挂载到实例上去之后调用该钩子函数;如果root
实例挂载了一个文档内元素,当mounted
被调用时vm.$el
也在文档内。 - 解释:这个时候挂载完毕,这时
dom
节点被渲染到文档内,一些需要dom
的操作在此时才能正常进行
- 官方说明: