? ??创建:
? ? ? ? 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、父子组件生命周期执行顺序:
? ? ? ? 组件渲染的顺序是先父后子,渲染完成的顺序是先子后父
? ? ? ? 组件更新的顺序是先父后子,更新完成的顺序是先子后父
? ? ? ? 组件销毁的顺序是先父后子,销毁完成的顺序是先子后父