生命周期含义
vue从创建实例到销毁实例的一个过程,就像生命从诞生到死亡。
在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。
生命周期图解
生命周期函数
- .beforeCreate( 实例创建前 )
- created ( 创建后 )
- beforeMount(挂载开始之前被调用)
- mounted(挂载完成)
- beforeUpdate(数据更新之前被调用)
- updated(数据更改导致的虚拟 DOM 重新渲染和打补丁之后调用)
- beforeDestroy(我们将要销毁整个页面或实例时调用)
- destroyed(我们的整个页面或实例被销毁之后调用)
- activated(被 keep-alive 缓存的组件激活时调用)
- deactivated(可以看做是beforeDestory和destoryed的替代)
注意
1.所有生命周期钩子的 this 上下文将自动绑定至实例中。这意味着你不应该使用箭头函数来定义一个生命周期方法 (例如 created: () => this.fetchTodos())。这时候this指向是有问题的。
2.created阶段的ajax请求和mounted阶段请求的区别:前者页面未出现,如果请求消息太多,页面会长时间处于白屏状态
3 .mounted不会承诺所有的子组件也都一起被挂载。如果希望等到整个视图都被渲染完毕,可以使用this.$nextTick(mounted更偏向于正在挂载中可能还有一部分没有完成)