生命周期钩子activated,deactivated
之前学习了基础的生命周期钩子(beforeCreate,created,beforeMont,mounted,beforUpdate,updated,beforDestroy,destroyed)
该钩子用在什么情况下
当在这些组件之间切换的时候都会请求一些请求过的数据,每次请求都会导致重复渲染影响性能。这些数据可以存到缓存。此时使用keep-alive将组件包裹起来。但这样以上八种生命周期钩子将失效。取而代之的是activated和deactivated
activated:是在被包裹组件被激活的状态下使用的生命周期钩子
deactivated:在被包裹组件停止使用时调用
记住:包含了keep-alive的组件,created()、mounted()都只会触发一次。但是activated每一次进入组件,都会触发一次哦。
keep-alive包裹的动态组件会被缓存,它是一个抽象组件,它自身不会渲染一个dom元素,当组件在keep-alive内被切换,组件里的 activated 和 deactivated 这两个生命周期钩子函数将会被对应执行。
如keep-alive包裹两个组件:组件A和组件B。当第一次切换到组件A时,组件A的created和activated生命周期函数都会被执行。在切换到组件B,这时组件A的deactivated的生命周期函数会被触发。再切换回组件A,组件A的activated生命周期函数会被触发,但是它的created生命周期函数不会被触发了。