生命周期
先唠叨一下生命周期的概念吧,简单讲生命周期就是一个组件从初始化到销毁的整个过程,如果觉得太抽象可以把组件类比为人,生命周期就是人的一辈子。
钩子?
如果把组件和人类比来看,钩子也就好解释了,举个例子:当我们大概在3岁左右就要去上幼儿园,去上幼儿园就是一个事件,这个事件需要在特定的时间去执行(3岁),那么我们就要把事件和时间关联起来,于是,我们就要用到钩子。
对于组件来讲,在组件的生命周期之中有几个特定的阶段(时间)可以给开发者“搞事情”,这几个特定的阶段就被称为钩子。
先看一下Vue官方提供的生命周期图
对于开发者而言我们应该知道,在什么时候,做什么事情是最佳的,不要做30岁才上幼儿园的蠢事就行了。
钩子 | 时机 | 事件 |
---|---|---|
beforeCreate | 实例创建前 | 因为数据未加载,可以加个loading |
created | 实例创建后,完成数据观测,事件回调 | ajax异步数据请求 |
beforeMount | 调用render函数 | |
mounted | 挂载完成,已生成dom节点 | 可对dom进行操作 |
beforeUpdate | 数据更新时调用,不进行重新渲染 | 状态管理 |
updated | 数据更新并且DOM重新渲染 | 可以执行依赖于 DOM 的操作 |
beforeDestory | 实例销毁之前调用 | |
destroyed | Vue 实例销毁后调用 |