| 生命周期 | 执行时机 |
|---|---|
| beforeCreate | 在组件实例被创建之初、组件的属性⽣效之前被调用 |
| created | 在组件实例已创建完毕。此时属性也已绑定,但真实DOM还未⽣成,$el 还不可⽤ |
| beforeMount | 在组件挂载开始之前被调⽤。相关的 render 函数⾸次被调⽤ |
| mounted | 在 el 被新建的 vm.$el 替换并挂载到实例上之后被调用 |
| beforeUpdate | 在组件数据修改了, 视图更新之前调⽤。发⽣在虚拟 DOM 打补丁之前 |
| updated | 在组件数据修改了, 视图更新之后被调用 |
| activited | 在组件被激活时调⽤(使用了 <keep-alive> 的情况下) |
| deactivated | 在组件被停用时调⽤(使用了 <keep-alive> 的情况下) |
| beforeDestory | 在组件销毁前调⽤ (销毁: vue默认会进行释放掉实例所有的监听, 释放掉所有的组件...) |
| destoryed | 在组件销毁后调⽤ (像定时器, webscoket连接, ... 跟vue没有太大关联的资源, 需要手动释放!) |
父子两个组件,生命周期执行顺序是什么
- 创建:父beforeCreate,父created,父beforeMount,子四个,父mounted
- 更新阶段:父beforeUpdate,子beforeUpdate,updated,父updated
- 销毁阶段:父beforeDestory,子beforeDestory,destoryed,父destoryed
为什么要在destoryed中销毁定时器(eventloop)
因为定时器在任务队列中,所以不会被自动清空