一、是什么
1.又名:生命周期回调函数、生命周期函数、生命周期钩子。
2.是什么:Vue在关键时刻帮我们调用的一些特殊名称的函数。
3.生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写的。
4.生命周期函数中的this指向是vm 或 组件实例对象。
二、有哪些
1、beforeCreated
可以得到vm实例,但不能获取到data数据、method方法
2、created
可以得到vm实例,但能获取到data数据、method方法。此时可以进行操作 data 中的数据
3、beforeMount
此时vue已经开始解析模板,生成虚拟dom,但是页面还没有解析好内容,因此,在此函数里面进行的dom操作都不会生效,因为beforeMount之后vue又会重新把解析的dom显示在页面上!
4、Mounted
执行到这个钩子的时候,就表示Vue实例已经初始化完成了。此时组件脱离了创建阶段,进入到了运行阶段。 如果我们想要通过插件操作页面上的DOM节点,最早可以在和这个阶段中进行
5、beforeUpdate
在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前。可以在该钩子中进一步地更改状态,不会触发附加的重渲染过程。
此时页面和数据的不同步的
6、Update
在由于数据更改导致地虚拟DOM重新渲染和打补丁只会调用,调用时,组件DOM已经更新,所以可以执行依赖于DOM的操作,然后在大多是情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环,该钩子在服务器端渲染期间不被调用
7、deforeDestroy
(1)这一步还可以用this来获取实例,
(2)一般在这一步做一些重置的操作,比如清除掉组件中的定时器 和 监听的dom事件
8、Destroyed
(销毁后) 在实例销毁之后调用。调用后,所有的事件监听器会被移除,所有的子实例也会被销毁。该钩子在服务器端渲染期间不被调用。(用的特别少)
总结
vue实例的一生:
将要创建===》调用beforeCreated
创建完毕===》调用Created
将要挂载===》调用beforeMounted
挂载完毕===》调用Mounted
将要更新===》调用beforeUpdate
更新完毕===》调用Update
将要销毁===》调用beforeDestroyed
销毁完毕===》调用Destroyed