目录:
一、什么是Vue生命周期?
所谓的Vue生命周期就是Vue实例从创建到销毁的整个过程我们称之为Vue的生命周期;即指从创建、初始化数据、编译模板、挂在DOM—>渲染、更新—>渲染、卸载等一系列过程。
Vue给不同的生命周期都提供了不同的函数,这给了用户在不同阶段添加自己的代码的机会。
二、页面第一次加载时父子组件生命周期执行的顺序是什么?
父组件 beforeCreate => 父组件 created => 父组件 beforeMount => 父组件 mounted => 子组件 beforeCreate => 子组件 created => 子组件 beforeMount => 子组件 mounted => 父组件 mounted
三、VUE生命周期都有哪些钩子函数?这些钩子函数如何触发?
以及项目开发过程中,在生命周期里面都分别做过什么功能?(包含在内)
VUE生命周期常用的钩子函数共有8个,分别是创建前后、挂载前后、更新前后、销毁前后,分别对应的钩子函数为beforeCreate创建前、created创建后、beforeMount挂载前、mounted挂载后、beforeUpdate更新前、updated更新后、beforeDestroy销毁前、destroyed销毁后。
页面一开始加载的时候就会触发创建前后和挂载前后的钩子函数,而更新的钩子函数需要当我们改变data的时候才能触发。
生命周期 | 描述 |
beforeCreate | 组件实例被创建之初触发,初始化VUE实例,进行数据监测,但是data 数据不可使用 |
created | 组件实例已经完全创建,请求数据 完成数据监测,属性与方法的运算,watch、event事件回调的配置 可调用methods中的方法,访问和修改data数据触发响应式渲染DOM,可通过computed和watch完成数据计算 注:如想获取数据,可通过异步获取方法获取($nextTick) |
beforeMount | 组件挂载之前 在内存中已经形成DOM树,但是还没有渲染到页面上 |
mounted | 组件挂载到实例上去之后,可以获取DOM元素 内存和页面的数据已经同步,是最早可以操作DOM元素的钩子 |
beforeUpdate | 组件数据发⽣变化,更新之前 data中的数据被修改的时候调用,执行这个钩子的时候内存的数据是新的页面是旧的,不会触发更新 |
updated | 组件数据更新之后 修改完成,页面和内存已经同步 若在updated中再次修改数据,会再次触发更新方法(beforeUpdate、updated) |
beforeDestroy | 组件实例销毁之前 实例属性与方法仍可访问 可用于一些定时器或订阅的取消 |
destroyed | 组件实例销毁之后,清除不必要的事件和定时器 可清理它的实例与其他实例的链接,解绑它的全部指令及事件监听器 并不能清楚DOM,只是销毁实例 |
activated | keep-alive缓存的组件激活时 |
deactivated | keep-alive缓存的组件停止使用时调用 |
errorCaptured | 用来捕获一个来自子孙组件的错误时被调用 |