1.vue的整个生命周期的特定时刻,自动调用的函数
2.beforeCreate 实例创建之前调用, 数据没有挂载,不能访问数据
vue实例初始化的时候就被执行(数据加载之前执行的一个函数,拿不到data里面的数据)
3.created 实例创建之后调用,能访问、修改数据,单修改数据不会触发updated函数 在这里可以向服务器请求数据,(也可以拿到父组件的数组进行修改等操作,这一步骤是没有操作到模板,数据和模板还没有结合)
下一步就是开始找模板,找不到的话就把el接管的div作为模板,如果有模板就会渲染模板
4.beforeMount 编译模板已经完成(模板和数据都已经准备就绪了) 虚拟dom已经存在 还没有进行进行渲染
也能修改数据,但是修改数据不会触发update函数(组件不卸载,只能执行一次)
5.render 渲染是vue自动完成的。如果手动写render函数,渲染的东西
就会把 vue自动渲染的东西覆盖调
6. mounted 真实的dom元素已经存在, 可以获取节、修改数据,而且修改数据会触发update函数(页面已经渲染,替换了之前的dom元素)
7. beforeUpdate 数据更新之前触发(数据更新:就是dom上的数据发生变化)
8. updated 数据修改后执行 修改数据要可能造成死循环(在这里尽量不要修改数据)
9. beforeDestroy 销毁之前 要做一些清理工作,防止内存泄漏
10. activated keep-alive 激活动态组件时调用
11. deactivated keep-alive 卸载动态组件时调用(已经销毁的时候执行)
1、什么是vue生命周期?
答: Vue 实例从创建到销毁的过程,就是生命周期。也就是从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程,我们称这是 Vue 的生命周期。
2、vue生命周期的作用是什么?
答:它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻辑。
3、vue生命周期总共有几个阶段?
答:它可以总共分为8个阶段:创建前/后, 载入前/后,更新前/后,销毁前/销毁后
4、第一次页面加载会触发哪几个钩子?
答:第一次页面加载时会触发 beforeCreate, created, beforeMount, mounted 这几个钩子
5、DOM 渲染在 哪个周期中就已经完成?
答:DOM 渲染在 mounted 中就已经完成了。
6、简单描述每个周期具体适合哪些场景?
答:生命周期钩子的一些使用方法: beforecreate : 可以在这加个loading事件,在加载实例时触发 created : 初始化完成时的事件写在这里,如在这结束loading事件,异步请求也适宜在这里调用 mounted : 挂载元素,获取到DOM节点 updated : 如果对数据统一处理,在这里写上相应函数 beforeDestroy : 可以做一个确认停止事件的确认框 nextTick : 更新数据后立即操作dom