常见的有8个 created mounted updated destroyed
用的比较少的是3个 activated deactivated errorCaptured
-
beforeCreate
(实例创建前被调用) 此时,数据观测 事件配置还未开始 -
created
(实例创建后被调用) 此时,实例已完成以下的配置:数据观测,属性和方法的运算,watch/event 事件回调。 -
beforeMount
(实例被挂载到容器前被调用)此时,render函数首次被调用。实例已完成以下的配置:编译模板,把data里面的数据和模板生成html。注意此时还没有挂载html到页面上mounted el 被挂载到实例上去之后 -
mounted
(实例被挂载到容器后被调用) 实例已完成以下的配置:用上面编译好的html内容替换el属性指向的DOM对象。将模板中的xml渲染到html页面中。虚拟DOM变成了真实DOM -
beforeUpdate
(数据更新前被调用) 发生在虚拟 DOM 打补丁之前。 -
updated
(数据更新后被调用) 在由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用。调用时,组件DOM已经更新,所以可以执行依赖于DOM的操作。然而在大多数情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环 -
activated
keep-alive 组件激活时调用 -
deactivated
keep-alive 组件停用时调用
什么是vue生命周期
答: Vue 实例从创建到销毁的过程,就是生命周期。从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、销毁等一系列过程,称之为 Vue 的生命周期
vue生命周期总共有几个阶段?
答:它可以总共分为8个阶段:创建前/后, 载入前/后,更新前/后,销毁前/销毁后
第一次页面加载会触发哪几个钩子?
答:会触发 下面这几个beforeCreate, created, beforeMount, mounted
DOM 渲染在 哪个周期中就已经完成?
答:DOM 渲染在 mounted 中就已经完成了
v-if v-show能触发updated钩子嘛,具体过程是什么
答案: v-if会触发updated钩子,因为数据改变了,实例监测到了变化,就会引发beforeUpdate然后updated两个钩子。
- v-if:若初始对某个组件设置
v-if:false
则该组件不会渲染,生命周期钩子不会执行,当false => true
时,组件会进行渲染,并依次执行该组件的beforeCreate,created,beforeMount,mounted 钩子,而true => false
依次执行 beforeDestroy,destroyed 钩子 - v-show:一上来就会依次执行完整的生命周期beforeCreate,created,beforeMount,mounted
AJAX请求建议何时发起?
答:created阶段的ajax请求与mounted请求的区别:前者页面视图未出现,如果请求信blog.csdn.net/sunhuaqiang…
mounted阶段子组件会一并挂载吗?
答:不会承诺同时挂载,如果希望等到整个视图都渲染完毕再挂载,可以用 vm.$nextTick
this.$nextTick的使用 blog.csdn.net/sunhuaqiang…
为什么prop的改变有时不会触发updated? 在线示例
- 视图的改变才会带来
updated
的触发 - 这个案例中,如果子组件的
虚拟dom
没变,简言之,你的prop
内容并没有绑定到视图中的话,那么updated
就不会触发