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

keep-alive缓存

#keep-alive缓存动态路由的使用指南#

代码如下图 :

<router-view v-slot="{ Component }">    
    <keep-alive :include="['Hot', 'Notifications', 'User', 'Setting', 'Test']">                    
        <component :is="Component"  />
    </keep-alive>
</router-view>

讲解:

一、v-slot="{ Component }" 的作用

这是 Vue 的作用域插槽语法,用于从 <router-view> 中获取当前路由对应的组件实例。

具体解释:
  1. <router-view> 的职责
    Vue Router 的 <router-view> 是一个动态容器,会根据当前路由路径渲染对应的组件(例如 /home 渲染 HomeComponent/about 渲染 AboutComponent)。

  2. 作用域插槽的暴露
    通过 v-slot="{ Component }"<router-view> 会将当前匹配到的组件实例以 Component 变量的形式暴露给父组件。

  3. 为何需要这个语法?
    为了在 <router-view> 外层包裹其他逻辑(如添加动画、缓存控制等),需要先获取到当前路由对应的组件实例,再手动渲染它。

二、:is="Component" 的作用

这是 Vue 的动态组件语法,用于动态决定要渲染哪个组件。

具体解释:
  1. <component> 元素
    Vue 内置的 <component> 是一个特殊元素,它通过 :is 属性绑定要渲染的组件。

  2. 与路由结合
    在路由场景中,Component 是从 <router-view> 的作用域插槽中获取的当前路由组件。等价于直接渲染 <router-view> 的内容,但通过这种写法可以添加额外逻辑(例如包裹 <keep-alive>)。

三、include 的作用

1. 核心功能
  • 缓存白名单include 接受一个组件名称的数组(字符串或正则表达式),只有匹配名称的组件才会被 <keep-alive> 缓存。

  • 避免重复渲染:被缓存的组件切换时不会触发 onMounted 生命周期,而是通过 onActivated/onDeactivated 管理状态。

2. 必须匹配组件的 name 选项
  • 组件定义时必须显式声明 name
    被缓存的组件需要在其选项中明确设置 name 字段

Tip:

一个小tip,如果要保持路由缓存,相关跳转不要用a标签,用route.push(),不然会导致路由重新加载

http://www.dtcms.com/a/109645.html

相关文章:

  • [dp5_多状态dp] 按摩师 | 打家劫舍 II | 删除并获得点数 | 粉刷房子
  • HTTP数据传输的几个关键字Header
  • 《操作系统真象还原》第五章(1)——获取内存容量
  • Leetcode 1262 -- 动态规划
  • #window系统php-v提示错误#
  • 一周学会Pandas2 Python数据处理与分析-Pandas2简介
  • Node.js 与 MySQL:深入理解与高效实践
  • VisMin:视觉最小变化理解
  • 强化学习_Paper_1988_Learning to predict by the methods of temporal differences
  • 【Pandas】pandas DataFrame values
  • MacOS中配置完环境变量后执行source ~/.bash_profile后,只能在当前shell窗口中生效
  • 【eNSP实验】RIP协议
  • WHAT - JWT(JSON Web Token)
  • 颜色归一化操作
  • 设计心得——状态机
  • STM32单片机入门学习——第12节: [5-2]对射式红外传感器计次旋转编码器计次
  • 多模态学习(八):2022 TPAMI——U2Fusion: A Unified Unsupervised Image Fusion Network
  • MySQL数据库脱敏实战指南:从原理到企业级实现
  • torch.nn中的非线性激活介绍合集——Pytorch中的非线性激活
  • Webacy 利用 Walrus 技术构建链上风险分析决策层
  • 软考又将迎来新的改革?
  • c#和c++脚本解释器科学运算
  • 约瑟夫环的四种(数组,链表,递归,迭代)解决方案,与空间、时间复杂度分析
  • 【Linux】远程登录时,使用图形界面报错:MoTTY X11 proxy: Unsupported authorisation protocol
  • Vue 学习随笔系列二十二 —— 表格高度自适应
  • 一个完整的 HTTP/HTTPS 请求流程
  • 【电路笔记】-触发器的转换
  • ctfshow VIP题目限免 源码泄露
  • 【面试篇】Es
  • QTableWidget 中insertRow(0)(头插)和 insertRow(rowCount())(尾插)的性能差异