VUE生命周期
Youky ... 2021-8-30 About 2 min
# VUE生命周期
# 初始化阶段
是一个vue实例从无到有的过程
- 以
new Vue({})
为开头,表示创建一个vue的实例对象。 - 然后初始化一个空的vue实例对象,此时这个对象身上只有默认的一些生命周期函数和默认的事件
- beforeCreate:此时data、methods中的数据都还未初始化。
- created:此时ata、methods中的数据已经完成初始化。要调用methods中的方法或操作data数据,最早要在created
- 开始编译模板,最终在内存中生成一个模板字符串。此时并没有将模板挂载到DOM
- 判断实例是否有el选项,若有则进入挂载;若没有则等待调用
$mount
方法 - beforeMount:此时模板已经编译好,但还没有挂载。此时页面还是旧的
- 用内存中的模板替换到真实页面中去
- mounted:此时模板替换已完成。要操作DOM,最早要在mounted
# 运行阶段
- beforeUpdate:此时data中的数据是新的,但页面还是旧的
- 根据最新的数据重新渲染DOM树并进行替换,完成数据从Model层到视图层的更新
- updated:页面和data已经同步,都是最新的状态
# 销毁阶段
- beforeDestroy:销毁之前执行,此时实例的data、methods等都还属于可用状态
- destroyed:组件已被完全摧毁,data、methods等都已不可用
# 父组件监听子组件的生命周期
- 在子组件的生命周期函数中触发自定义事件,并在父组件中进行监听
- 在父组件中用
@hook:xxx
的形式进行监听,xxx代表生命周期名称。执行顺序:子组件生命周期、父组件的响应函数