1. beforeCreate
- 实例创建刚被创建,组件属性计算之前
- 实例中的data和el都是undefined。因此,在beforeCreate钩子函数中不能使用data中的数据,也不能获得DOM节点
- ==loading动画==
2. created
- 组件实例创建完成,属性已绑定,但dom还没生成,$el属性还不存在
- 当执行钩子函数created时,complier还没有将template解析成render方法,DOM自然不能获取
- ==结束loading,初始化工作==
运行new Vue()的时候,会进入代码src/core/instance/index.js的Vue构造方法中,并执行this._init()方法。在_init中,会对各个功能进行初始化,并执行beforeCreate和created两个生命周期方法
3. beforeMount
- 模板编译挂载之前,dom挂载之前
4. mounted
- 数据和DOM都已被渲染出来
- ==发起后端请求,拿回数据,异步服务端请求==
5. beforeUpdate
- 当 data 数据发生变化调用,发生在虚拟 DOM 重新渲染和打补丁之前
6. updated
- 数据更改导致的虚拟 DOM 重新渲染和打补丁
7. beforeDestroy
- 在 vue 实例销毁之前调用,此时实例任然可用
- ==弹出确认删除==
8. destroyed
- 在 vue 实例销毁之后调用,vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁
- ==清除相关数据达到资源的有效利用==
activated
- keep-alive 组件激活时调用
- ==使用<keep-alive>会将数据保留在内存中,如果要在每次进入页面的时候获取最新的数据,需要在activated阶段获取数据,承担原来created钩子中获取数据的任务==
deactivated
- 组件被移除时调用
网友评论