vue中实例有一个完整的生命周期,从创建、挂载、更新、销毁都是有两个阶段的,通过我们对生命周期的掌握从事实现我们所需要的方法和效果,每个阶段也都是各司其职。具体常用的生命周期分成了八个,官方图↓
下面是vue中第一个阶段:创建
beforCreate
根据官方的图就能知道, 是发生在初始化实例之前、数据观测和事件配置之前调用的,此时我们还拿不到data和el
created
实例创建完成,初始化数据响应式。实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见,当我们的组件创建完毕后调用的生命周期,在这个生命周期中基本的配置已经完成,我们已经可以操作我们所定义的数据,以及methods方法,这个生命周期也是经常用到的
接下来是vue的第二个阶段:挂载
beforeMount
在挂载之前调用,beforeMounted之前会找到对应的template并编译成render函数,如果没有template选项,则将外部HTML作为模板编译,但是这个时候还没有挂载到http上。此时我们还获取不到dom元素
mounted
在挂载之后调用,此时实例挂载到dom上,此时可以通过DOM api获取到dom结点,也可以通过nextTick()的回调里面
接下来是vue的第三个阶段:更新
beforeUpdate
在更新前调用 适用于在更新前对现有dom进行操作 可以在该周期中更改数据状态
updated
在更新之后调用 组件dom已经更新完成,但避免在此生命周期中进行数据的操作,防止重复渲染的发生可能会出现死循环
接下来是vue的第四个阶段:销毁
beforeDestory
在实例销毁之前调用。在这一步,实例仍然完全可用,还可以使用this获取实例,做一些清除缓存,计时器的操作
destoryed
在Vue 实例销毁后调用。此时,Vue 实例指示的所有东西都会解除绑定,所有的事件监听器会被移除,所有的子实例也会被销毁,并且该周期不会在渲染期间重复调用