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

前端流行框架Vue3教程:25. 组件保持存活

25. 组件保持存活

当使用<component :is="...">来在多个组件间作切换时,被切换掉的组件会被卸载。

我们可以通过 <keep-allve> 组件强制被切换掉的组件仍然保持"存活”的状态


我们先来看个例子(依然用上节课的代码改动下):

ComponentA.vue

<script>
export default {beforeUnmount() {console.log('组件销毁之前')},unmounted() {console.log('组件销毁完毕')}
};
</script><template><h3>ComponentA</h3>
</template>

我们点击按钮,就会看到:
在这里插入图片描述

说明组件被卸载了。我们写点明文演示下:

<script>
export default {data() {return {message: "老数据"};},beforeUnmount() {console.log('组件销毁之前')},unmounted() {console.log('组件销毁完毕')}, methods: {updateHandle() {this.message = "新数据";}}
};
</script><template><h3>ComponentA</h3><p>{{ message }}</p><button @click="updateHandle">更新数据</button>
</template>

在这里插入图片描述

我们点更新数据,A组件会变成新数据。切换组件B后,再去切回A组件,发现又变成了老数据。说明我们在切换的时候,组件被卸载了,所以加载的还是原始的数据。

那么我们怎么保持组件存活呢?(保持新数据不变)

App.vue

<script>
...
</script>
<template><!-- 使用 keep-alive 组件来缓存动态组件,避免重复渲染 --><keep-alive><component :is="tabComponent"></component></keep-alive><button @click="changeHandle">切换组件</button>
</template>

此时,我们切换回A组件,就还是新数据了

在这里插入图片描述

相关文章:

  • [创业之路-375]:企业战略管理案例分析 - 华为科技巨擘的崛起:重构全球数字化底座的超级生命体
  • WPF 全屏显示实现(无标题栏按钮 + 自定义退出按钮)
  • 2025软考架构师 DeepSeek 案例预测
  • 在WPF中添加动画背景
  • Android-OkHttp与Retrofit学习总结
  • 事务基础概念
  • HarmonyOS优化应用内存占用问题性能优化四
  • 奇好 PDF安全加密 + 自由拆分合并批量处理 OCR 识别
  • 常见嵌入式软件架构
  • JavaSE常用API之Runtime类:掌控JVM运行时环境
  • UDP和TCP示例程序
  • 机器学习算法-sklearn源起
  • 【JVM 05-JVM内存结构之-堆】
  • RabbitMQ 应用
  • Python知识图谱工具全解析
  • SDL2常用函数:SDL_LoadBMP 数据结构详解与示例
  • ABP VNext + Orleans:Actor 模型下的分布式状态管理最佳实践
  • 基于Java+MySQL 实现(Web)网络考试系统
  • C++篇——C++11的更新内容
  • github开源版pymol安装(ubuntu22.04实战版)
  • 电影网站源码怎么做的/八八网
  • 门户网站开发的背景和意义/seo公司品牌哪家好
  • 电子商务服务网站/旺道seo优化
  • 天津建设工程评标专家网站/今天新闻头条新闻
  • 深圳网站建设需要多少费用/环球网广东疫情最新消息
  • 网站建设职业培训/南宁百度关键词推广