当前位置: 首页 > 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组件,就还是新数据了

在这里插入图片描述

http://www.xdnf.cn/news/621559.html

相关文章:

  • 湖北理元理律师事务所债务优化方案解析:如何科学规划还款保障生活质量
  • 0304考试通过-逻辑回归实战-机器学习-人工智能
  • Symbol、Set 与 Map:新数据结构探秘
  • uniapp-商城-66-shop(2-品牌信息显示,数据库读取的异步操作 放到vuex actions)
  • Perl单元测试实战指南:从Test::Class入门到精通的完整方案
  • Linux系统管理与编程23:巧用git资源一键部署LAMP
  • ShenNiusModularity项目源码学习(29:ShenNius.Admin.Mvc项目分析-14)
  • React整合【ECharts】教程001:柱状图的构建和基本设置
  • 【Python 中 lambda、map、filter 和 reduce】详细功能介绍及用法总结
  • Java三十而立:Java 的30岁与Spring AI 1.0正式发布
  • STC89C52RC/LE52RC
  • 嵌入式Openharmony系统应用开发与实现方法
  • (已开源-CVPR2024) RadarDistill---NuScenes数据集Radar检测第一名
  • TypeScript 和 JavaScript核心关系及区别
  • 最大似然估计(Maximum Likelihood Estimation, MLE)详解
  • 机器学习课程设计报告 —— 基于二分类的岩石与金属识别模型
  • PHP SPL 自动加载机制详解与实战应用:spl_autoload_register 使用指南
  • BLIP论文笔记
  • 使用 CodeBuddy 实现视频合并工具:解决本地视频处理痛点
  • 【RabbitMQ运维】集群搭建
  • 【强化学习】#7 基于表格型方法的规划和学习
  • 力扣 283.移动零 (双指针)
  • SQL语句的执行流程
  • C++搜索二叉树
  • Java语言快速排序和堆排序(优先队列)介绍,附demo代码
  • C# 深入理解类(析构函数和this关键字)
  • 【RK3588新品】嵌入式人工智能实验箱EDU-AIoT ELF 2发布
  • 【萤火工场GD32VW553-IOT开发板】ADC电压的LabVIEW采集
  • 【漫话机器学习系列】275.GrabCut 算法——用于去除图片背景(Grabcut For Removing Image Backgrounds)
  • SpringBoot项目配置文件、yml配置文件