当前位置: 首页 > news >正文

父子孙嵌套组件的生命周期

页面一刷新父子孙的初始化生命周期:

总结:栈原理:先进后出,即父组件先创建,子组件先挂载。

看例子:

<template><div class="Dome1"><div>Dome1</div><button @click="onClose">{{ isShow ? '关闭' : '打开' }}</button><Dome2 v-if="isShow" :url="url" /></div>
</template><script>
import Dome2 from "./dome2.vue";
export default {name: 'TestOne',data () {return {name: 'Dome1',isShow: true,}},components: { Dome2 },beforeCreate () {
// data里面的数据是undefinedconsole.log('创建前->beforeCreate->Dome1');},created () {console.log('创建->created->Dome1');},beforeMount () {console.log('挂载前->beforeMount->Dome1');},mounted () {console.log('挂载->mounted->Dome1');},beforeUpdate () {console.log('更新前->beforeUpdate->Dome1');},updated () {
// watch computed 等在这个时候更新console.log('更新->updated->Dome1');},beforeUnmount () {console.log('销毁前->beforeUnmount->Dome1');},unmounted () {console.log('销毁->unmounted->Dome1');},methods: {onClose () {this.isShow = !this.isShow}}
}
</script><style scoped>
.Dome1 {margin: 0 auto;width: 1000px;height: 800px;background-color: rosybrown;display: flex;justify-content: center;align-items: center;
}
</style>
<template><div class="Dome2"><div>Dome2</div><Dome3 /></div>
</template><script>
import Dome3 from "./dome3.vue";export default {name: 'TestTwo',data () {return {}},props: ['url'],components: { Dome3 },beforeCreate () {console.log('创建前->beforeCreate->Dome2');},created () {console.log('创建->created->Dome2');},beforeMount () {console.log('挂载前->beforeMount->Dome2');},mounted () {console.log('挂载->mounted->Dome2');},beforeUpdate () {console.log('更新前->beforeUpdate->Dome2');},updated () {console.log('更新->updated->Dome2');},beforeUnmount () {console.log('销毁前->beforeUnmount->Dome2');},unmounted () {console.log('销毁->unmounted->Dome2');}
}
</script><style scoped>
.Dome2 {width: 800px;height: 400px;background-color: lightgreen;display: flex;justify-content: center;
}
</style>
<template><div class="Dome3">Dome3</div>
</template><script>
export default {name: 'TestThree',data () {return {}},beforeCreate () {console.log('创建前->beforeCreate->Dome3');},created () {console.log('创建->created->Dome3');},beforeUpdate () {console.log('更新前->beforeUpdate->Dome3');},updated () {console.log('更新->updated->Dome3');},beforeMount () {console.log('挂载前->beforeMount->Dome3');},mounted () {console.log('挂载->mounted->Dome3');},beforeUnmount () {console.log('销毁前->beforeUnmount->Dome3');},unmounted () {console.log('销毁->unmounted->Dome3');}
}
</script><style scoped>
.Dome3 {width: 200px;height: 200px;background-color: red;margin: 80px auto;
}
</style>

当点击Dome2关闭时,更新销毁函数

总结:销毁是“从外向内”,父组件最先进入销毁,孙组件先销毁。

所有组件要被销毁的时候是销毁顺序是从父到子,再到孙;父组件最先进入销毁阶段,孙组件最后销毁


http://www.mrgr.cn/news/74963.html

相关文章:

  • 在C++上实现反射用法
  • Redis简介、数据结构、高性能读写、持久化机制、分布式架构
  • 自動換IP為什麼會不穩定?
  • Rust学习(二):rust基础语法Ⅰ
  • kaggle 如何利用API下载数据集
  • Openstack7--安装消息队列服务RabbitMQ
  • IntelliJ IDEA设置打开文件tab窗口多行展示
  • HTTP基础
  • 网站架构知识之nginx负载均衡(day027)
  • Upload-Labs-Linux1学习笔迹 (图文介绍)
  • 知识图谱6:neo4j查询语句
  • vue2在el-dialog打开的时候使该el-dialog中的某个输入框获得焦点方法总结
  • Python自动化小技巧24——实现自动化输出模板表格报告
  • A3超级计算机虚拟机,为大型语言模型LLM和AIGC提供强大算力支持
  • 工化企业内部能源能耗过大 落实能源管理
  • 【机器学习】特征工程、降维与超参数调优:提升机器学习模型表现的三大核心技术
  • 华为HCIP-openEuler考试内容大纲:备考必看!
  • 【c++丨STL】list的使用
  • 引入第三方jar包部署服务器后找不到jar处理方法
  • 连接实验室服务器并创建虚拟环境,从本地上传文件到linux服务器,使用requirement.txt安装环境需要的依赖的方法及下载缓慢的解决方法(Linux)
  • 【golang-技巧】- 定时任务 - cron
  • 启扬RK3588核心板,助力园区管理智能化升级
  • Linux基础—ssh和nfs
  • Java面向对象编程进阶之包装类
  • ue5入门教程:EventGraph
  • 期权懂|个股期权常见的风险有哪些你知道吗?