创建:
beforecreate:
实例创建前
此阶段的data、methods、computed、watch的数据和方法不能被访问
created:
实例创建完成后
此阶段完成数据监听,可以使用数据、更改数据。无法与Dom进行交互,想要的话可以通过nextTick来访问。
挂载:
beforeMount:
页面渲染前
此阶段虚拟Dom已经创建完成,即将开始渲染。在此时也可以对数据进行更改,不会触发updated。
mounted:
页面渲染完成后
此阶段真实Dom渲染完毕,数据完成双向绑定,可以访问到Dom节点,使用$refs属性对Dom进行操作。
更新:
beforeUpdate:
响应式数据更新前
此阶段更改数据,不会造成页面重新渲染。
updated:
响应式数据更新完成后
避免在此阶段更改数据,因为这可能会导致无限循环的更新。
销毁:
beforeDestroy:
实例销毁前
我们可以在这时进行善后收尾工作,比如清除定时器、解除绑定事件
destroyed:
实例销毁完成后
缓存:
activited:
keep-alive专属,组件被激活时调用
deactivited:
keep-alive专属,组件被销毁时调用
1、异步请求放在created还是mounted:
如果是单单的一个父级组件,放哪里都无所谓。
如果涉及到了要控制子父组件先后显示正确内容的时候,就可以考虑下父组件的请求要放在哪个钩子里了。想要子组件先拿到数据渲染就放在mounted中,想要父组件先拿到数据就放在created中。
2、第一次加载页面触发了创建、挂载生命周期
3、父子组件生命周期执行顺序:
组件渲染的顺序是先父后子,渲染完成的顺序是先子后父
组件更新的顺序是先父后子,更新完成的顺序是先子后父
组件销毁的顺序是先父后子,销毁完成的顺序是先子后父