1、什么是生命周期
- Vue实例从创建到销毁的过程,就是生命周期。也就是从开始创建、初始化数据 、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程,我们称这是 Vue 的生命周期。
2、vue生命周期的作用是什么?
- 生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻辑。
3、vue生命周期总共有几个阶段?
- 8个阶段:创建前/后
beforeCreate/created
, 载入前/后beforemount/mounted
,更新前/后beforeUpdate/updated
,销毁前/销毁后beforeDestroy/destroyed
。
创建前/后: 在
beforeCreated
阶段,vue实例的挂载元素$el
和数据对象data都为undefined
,还未初始化。在Created
,Vue实例的数据对象data有了,$el还没有。载入前/后:在beforeMount阶段,vue实例的$el和data都初始化了,但还是挂载之前为虚拟的dom节点,data.message还未替换。在mounted阶段,vue实例挂载完成,data.message成功渲染。
更新前/后:当data变化时,会触发beforeUpdate和updated方法。
销毁前/后:在执行destroy方法后,对data的改变不会再触发周期函数,说明此时vue实例已经解除了事件监听以及和dom的绑定,但是dom结构依然存在
4、第一次页面加载会触发哪几个钩子?
- 会触发
beforeCreate,create,beforemount, mounted
5、DOM 渲染在 哪个周期中就已经完成?
- 在
mounted
中完成
6、简单描述每个周期具体适合哪些场景?
-
beforecreate
: 可以在这加个loading事件,在加载实例时触发; -
created
: 初始化完成时的事件写在这里,如在这结束loading事件,异步请求也适宜在这里调用; -
mounted
: 挂载元素,获取到DOM节点 ; -
updated
: 如果对数据统一处理,在这里写上相应函数 ; -
beforeDestroy
: 可以做一个确认停止事件的确认框; -
nextTick
: 更新数据后立即操作dom;
网友评论