什么是生命周期
用官方的话来讲,Vue 实例从创建到销毁的过程,就是生命周期。也就是从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程,我们称之为 Vue 的生命周期。
通俗来讲,当加载一个页面的时候,会创建一个vue实例来展示这个页面。
第一阶段
beforeCreate
最先开始的是创建,也就是 「beforeCreate」 ,这个阶段,实例初步被创建,还没有初始化,就是一个具备基本模板,没有任何数据和事件的光杆司令,
created
然后进入到「created」阶段,这时候实例创建完成,并且立刻调用这个钩子里的函数,这时候数据观测 (data observer),watch/event 事件回调 的属性和方法配置完成,页面元素还没初始化,
beforeMount
接下来准备开始挂载dom节点,以供操作,在挂载之前 「beforeMount」 阶段,这时候相关的render函数首次被调用,并且完成页面元素和数据的初始化,
mounted
然后「mounted」阶段,这时候属性有了,方法有了,页面元素有了,数据也有了,所以这个阶段会对DOM节点进行操作,进行挂载完毕,并且挂载完毕后调用钩子里的函数,所以大多数的函数放在这里面,因为这里了开始可以对dom进行操作
第二阶段
beforeUpdate
第一阶段数据渲染完毕,页面展现完毕,这时候想要进行数据交互,这时的第一阶段是 「beforeUpdate」 ,它发生在数据更新的调用时候,DOM还没有重新渲染之前,这时候可以进一步更改状态,而且不会触发重新渲染的过程
updated
这个阶段DOM以及重新渲染,可以行使操作新dom的的行为,但是应该避免出现这种行为,很可能会导致更新无线循环
beforeDestroy
到了这个阶段,上一阶段的行为最好放在这里使用,这是实例销毁之前的最后完整保留
destroyed
这个阶段实例被销毁,实例相关的一切消失,