Vue组件的生命周期你能说明白吗?

Vue组件的生命周期你能说明白吗?生命周期 Life Cycle 是指一个组件从 创建 gt 更新 gt 销毁 的整个阶段 一 生命周期的分类生命周期大致可以分为三个阶段 1 创建阶段 beforeCreate gt created gt

大家好,欢迎来到IT知识分享网。

生命周期 ( Life Cycle )是指一个组件从 创建 -> 更新 -> 销毁 的整个阶段。

一、生命周期的分类

生命周期大致可以分为三个阶段:

1. 创建阶段 beforeCreate –> created –> beforeMount –> mounted

2. 更新阶段 beforeUpdate –> updated

3. 销毁阶段 beforeDestroy –> destroyed

Vue组件的生命周期你能说明白吗?

生命周期图示如下图所示:

Vue组件的生命周期你能说明白吗?

二、生命周期函数&生命周期钩子

1. 创建阶段

beforeCreate –> 创建阶段的第1个生命周期函数,组件的methods,data尚未定义,处于不可用。

created –> 创建阶段的第2个生命周期函数,data和methods定义,无法操作真是DOM。

beforeMount –> 创建阶段的第3个生命周期函数,内存编译好的HTML结构准备渲染到浏览器中,此时浏览器中还没有当前组件的DOM结构,无法操作DOM。

mounted –> 创建阶段的第4个生命周期函数,已经渲染内存的HTML结构到浏览器中,可操作真是DOM。

2. 更新阶段

beforeUpdate –> 运行阶段的第1个生命周期函数,将要根据数据变化后、最新的数据,重新渲染组件的模板结构,数据是最新的,但页面不是最新的

updated –> 运行阶段的第2个生命周期函数,完成了最新数据重新渲染到组件的DOM结构,数据和页面都是最新的

3.销毁阶段

beforeDestroy –> 销毁阶段的第1个生命周期函数,组件还处于正常工作状态

destroyed –> 销毁阶段的第2个生命周期函数,组件销毁完成

三、生命周期函数补充

keep-alive

添加 keep-alive 标签后会增加 activated 和 deactivated 这两个生命周期函数,初始化操作放在 activated里面,一旦切换组件,因为组件是缓存的而没有被销毁,所以它不会执行销毁阶段的钩子函数,所以移除操作需要放在 deactivated 里面,在里面进行一些善后操作,这个时候 created 钩子函数只会组件首次加载时执行一次,销毁的钩子函数一直没有执行。

activated(组件激活时):被 keep-alive 缓存的组件激活时调用,可以初始化一些数据。

deactivated(组件停用时):被 keep-alive 缓存的组件停用时调用。在deactived里面,在里面进行一些善后操作。

四、父子组件生命周期

父组件: