vue生命周期就是从开始创建,初始化数据,编译模板,挂载DOM,渲染->更新->渲染,销毁等一系列过程
总共分为8个阶段:
阶段 作用
beforeCreate----创建前 组件实例更被创建,组件属性计算之前,数据对象data都为undefined,未初始化。
created----创建后 组件实例创建完成,属性已经绑定,数据对象data已存在,但dom未生成,
e
l
未
存
在
这
个
时
候
h
t
m
l
还
没
有
渲
染
出
来
b
e
f
o
r
e
M
o
u
n
t
−
−
−
挂
载
前
v
u
e
实
例
的
el未存在这个时候html还没有渲染出来 beforeMount---挂载前 vue实例的
el未存在这个时候html还没有渲染出来beforeMount−−−挂载前vue实例的el和data都已初始化,挂载之前为虚拟的dom节点,data.message未替换
mounted-----挂载后 vue实例挂载完成,data.message成功渲染。
beforeUpdate----更新前 当data变化时,会触发beforeUpdate方法
updated----更新后 当data变化时,会触发updated方法
beforeDestory—销毁前 组件销毁之前调用
destoryed—销毁后 组件销毁之后调用,对data的改变不会再触发周期函数,vue实例已解除事件监听和dom绑定,但dom结构依然存在
vue生命周期的应用场景:
beforeCreate 可以在此时加一些loading效果,在created时进行移除
created 需要异步请求数据的方法可以在此时执行,完成数据的初始化
mounted 当需要操作dom的时候执行,可以配合$.nextTick 使用进行单一事件对数据的更新后更新dom
updated 当数据更新需要做统一业务处理的时候使用
只有ajax数据请求放在created里面就可以了,这样可以及早发请求获取数据;如果有依赖DOM的情况下,就放到mounted里面
作者:阿踏
链接:https://www.jianshu.com/p/9cf2cb0891bc
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。