Vue 的 keep-alive 的作用是什么
keep-alive
可以在组件切换时,保存其包裹的组件的状态,使其不被销毁,防止多次渲染。其拥有两个独立的生命周期钩子函数 actived 和 deactived,使用keep-alive
包裹的组件在切换时不会被销毁,而是缓存到内存中并执行 deactived 钩子函数,命中缓存渲染后会执行 actived 钩子函数。
props
- include - 字符串或正则表达,只有匹配的组件会被缓存
- exclude - 字符串或正则表达式,任何匹配的组件都不会被缓存
-
// 组件 a
-
export default {
-
name: 'a',
-
data () {
-
return {}
-
}
-
}
-
<keep-alive include="a">
-
<component>
-
<!-- name 为 a 的组件将被缓存! -->
-
</component>
-
</keep-alive>可以保留它的状态或避免重新渲染
-
<keep-alive exclude="a">
-
<component>
-
<!-- 除了 name 为 a 的组件都将被缓存! -->
-
</component>
-
</keep-alive>可以保留它的状态或避免重新渲染
但实际项目中,需要配合vue-router共同使用
App.vue
-
<template>
-
<div id="app">
-
<!-- 路由占位符 -->
-
<!-- <router-view></router-view> -->
-
<keep-alive>
-
<router-view v-if="$route.meta.keepAlive">
-
<!-- 这里是会被缓存的视图组件 -->
-
</router-view>
-
</keep-alive>
-
-
<router-view v-if="!$route.meta.keepAlive">
-
<!-- 这里是不被缓存的视图组件 -->
-
</router-view>
-
</div>
-
</template>
router -> index.js
-
const routes = [
-
{ path: '/', redirect: '/index' },
-
{ path: '/', redirect: '/home' },
-
{
-
path: '/home',
-
component: HomeLayout,
-
children: [
-
{
-
path: '/home',
-
component: Home
-
},
-
{
-
path: '/workingCondition',
-
component: () =>
-
import(
-
/*webpackChunkName:"workingCondition"*/ '../views/workingCondition/index.vue'
-
),
-
meta: {
-
keepAlive: true // 需要被缓存
-
}
-
}
-
]
-
},
-
{
-
path: '/reportView',
-
component: () => import('../views/other/reportView.vue')
-
},
-
{
-
path: '/todo',
-
component: () => import(/*webpackChunkName:"ToDo"*/ '../views/ToDo.vue'),
-
meta: {
-
keepAlive: true // 需要被缓存
-
}
-
}
-
]
转:https://blog.csdn.net/qq_37548296/article/details/110798890
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用