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