从源码上来看,Vue对象的每个生命周期钩子前都干了什么?
一、从官方文档查看的Vue的生命周期钩子
上面的图片是从Vue的官网里面找到的,如果单从这张图去查看生命周期干了什么,我们只能知道:
- 在beforeMount前会对给出的模板进行编译(仅仅是在用Vue.js打包的时候会进行编译,在用脚手架的时候,在打包过程中会把模板编译成为渲染函数,这样可以避免每次创建一个Vue对象的时候进行编译模板)
- 在mounted后,Vue实例对象才是完整的对象,这个转改能够维持到beforeDestroy。
但是我们不知道的东西会有很多,我这里就举出几个问题:
- 父子节点的生命周期执行顺序是怎么样的?
- 每个生命周期能够访问到的数据是否相同?
- 我们知道修改了data后能够触发更新生命周期的钩子,那么到底是怎样进行触发的?
- 我们知道Vue的话是通过VNode来更新管理真实的DOM的,那么在上面的生命周期什么时候进行渲染的?
为什么我们要知道上面的情况?因为我们可能会遇到一些问题,需要知道Vue里面的实现
- 一般情况下,我们在组件初始化完毕的时候,也就是在mounted回调函数里面调用我们初始化的执行代码(很大情况下是请求,也就是异步操作),但是如果现在有一个性能的需求,就是要求尽早地调用我们初始化的代码,那么选择哪个生命周期呢?这得根据每个生命周期干的事情来决定
- 对于一些全局同步的操作,比如解析路由来对应页面显示的内容等等这些操作,那么我们是想要它尽早地完成,以便全局使用。
在这里的话,我们可以对我提出的第一个问题进行解决。现在场景是这样的,我们有一个父亲组件&#x