Vue的生命周期理解
在开发Vue项目时,生命周期显得尤为重要,因为通过生命周期,我们可以控制Vue实例过程的各个阶段,使项目的逻辑更加清晰。
vue生命周期总结
生命周期 | 详细 | 应用场景 |
---|---|---|
beforeCreate | 实例创建之后,但数据观测(data observer)和event/watcher事件未配置,data computed watch methods上的方法和数据均不能访问 | 可添加loading事件 |
created | 实例创建完成,数据观测(data observer)和event/watcher事件已配置,可访问data computed watch methods上的方法和数据,未挂载dom,不能使用 e l 、 el、 el、ref | 可以在这里结束loading,初始化数据,异步请求数据 |
berofeMount | 在挂载开始之前调用,render函数首次调用 | |
mounted | 完成挂载dom和渲染,即有了DOM 且完成了双向绑定 可访问DOM节点,$ref | 发起异步请求,操作dom,挂载dom,获取数据并配合dom进行操作 |
beforeUpdate | 数据更新时调用,虚拟dom重新渲染和打补丁之前 | 访问现有的dom,手动移除添加的事件监听器 |
updated | 虚拟dom重新渲染之后,一定不要再这里操作数据,否则会陷入死循环 | 对数据进行统一的处理 |
beforeDestroy | 实例销毁之前调用,可以使用实例 | 删除提示,如:你确认删除XX吗?用于销毁定时器,解绑全局事件,销毁插件对象 |
destroyed | 实例销毁之后调用 | 当前组件已被删除,销毁监听事件 组件 事件 子实例也被销毁这时组件已经没有了,你无法操作里面的任何东西了。 |
nextTick | 下一个dom渲染成功后立即执行 |
vue生命周期相关的面试题:
1、什么是vue生命周期?
答:vue实例从创建到销毁的整个过程,就是生命周期。创建前–>创建后–>挂载前–>挂载后–>更新前–>更新后–>销毁前–>销毁后
2、vue生命周期的作用?
答:vue的整个生命周期有多个钩子函数,可以让我们在控制整个vue实例的过程中形成更好的逻辑
3、vue生命周期,有几个阶段?
答:总共8个阶段,创建前–>创建后–>挂载前–>挂载后–>更新前–>更新后–>销毁前–>销毁后
4、页面初次加载会出发哪几个钩子?
答:创建前(beforeCreate),创建后(created),挂载前(beforeMount),挂载后(Mounted)
5、dom渲染在哪个周期中已经完成?
答:dom渲染在mounted周期便已经完成
6、简单描述各个生命周期的应用?
- beforeCreate:设置loading,在实例加载的时候触发
- created:初始化数据,结束loading
- mounted:挂载元素,操作dom,也可以初始化数据与dom结合,如获取表格数据,在循环渲染
- updated:对数据进行统一操作
- beforeDestroy:关闭或者停止事件的确认框,解绑全局事件,销毁插件对象