Vue生命周期的几点

112 阅读1分钟

整个Vue生命周期的研究,可以参考上一篇文章(Vue生命周期钩子函数)。

问题1:请求数据放在哪个钩子函数里面?

面试官问:ajax请求应该放在哪个生命周期。

ajax请求最好放在created里面,因为此时已经可以访问this了,请求到数据就可以直接放在data里面。

问题2:DOM操作放在哪个钩子函数中?

关于dom的操作要放在mounted里面,在mounted前面访问dom会是undefined。 此时,已经完成了页面的挂载渲染,是最新的页面。

问题3:父子组件生命周期执行顺序: 见上一篇文章

问题4:每次进入/离开组件都要做一些事情,用什么钩子:

不缓存的组件: 进入的时候可以用created和mounted钩子,离开的时候用beforeDestory和destroyed钩子,beforeDestory可以访问this,destroyed不可以访问this。

缓存的组件: 缓存了组件之后,再次进入组件不会触发beforeCreate、created 、beforeMount、 mounted,如果你想每次进入组件都做一些事情的话,你可以放在activated进入缓存组件的钩子中。

同理:离开缓存组件的时候,beforeDestroy和destroyed并不会触发,可以使用deactivated离开缓存组件的钩子来代替。

持续更新。。。