网站首页 > 精选文章 正文
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组件,就还是新数据了
- 上一篇: 组件切换混乱?1 个 Vue 动态组件技巧
- 下一篇: 前端流行框架Vue3教程:15. 组件事件
猜你喜欢
- 2025-06-13 前端必看!7 个 Vue3 性能优化实战技巧,让页面飞起来
- 2025-06-13 前端也能玩转截图?uni-app + Vue3 实现页面快照功能
- 2025-06-13 Vue2 升级 Vue3 一文通关(vue-cli2.0升级3.0)
- 2025-06-13 Vue2的16种传参通信方式(vue有几种传参方式)
- 2025-06-13 面试官:聊聊你知道的Vue与React的区别
- 2025-06-13 vue3.0总结之ref与reactive(vue ref reactive)
- 2025-06-13 90% 的前端工程师都不知道的 Vue3 实战神操作,看完直呼后悔没早学
- 2025-06-13 vue3 组件初始化流程(vue组件初始化顺序)
- 2025-06-13 从 React 过渡到 Vue 3:开发者的实践指南
- 2025-06-13 vue重定向(vue重定向后403报错)
- 最近发表
-
- Vue基础入门,第15节 一键页面换新衣,动态修改样式的3种方法
- uniapp Vue3.x组件库uview-vue3(uniapp用什么组件库)
- Vue3 样式绑定: 内联样式与Class属性的数组语法
- Vue2的样式(class和style)绑定(vue样式scoped)
- 前端开发,在项目中常用的css样式整理
- 前端必看!7 个 Vue3 性能优化实战技巧,让页面飞起来
- 前端也能玩转截图?uni-app + Vue3 实现页面快照功能
- Vue2 升级 Vue3 一文通关(vue-cli2.0升级3.0)
- Vue2的16种传参通信方式(vue有几种传参方式)
- 面试官:聊聊你知道的Vue与React的区别
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)