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

缓存组件<keep-alive>

缓存组件<keep-alive>

1.组件作用

组件, 默认会缓存内部的所有组件实例,当组件需要缓存时首先考虑使用此组件。

2.使用场景

场景1:tab切换时,对应的组件保持原状态,使用keep-alive组件

使用:KeepAlive | Vue.js,参考官网即可。

场景2:路由切换回来时如果需要保持当前路由界面下的状态,就需要使用缓存。

使用:

1.定义路由时添加字段标识 isKeepAlive,防止缓存所有路由

 {"path": "/home",
  "name": "home",
  "component": "/home/index",
   "label": "首页",
   "meta": {
       "icon": "home",
       "title": "首页",
       "isKeepAlive": false
     }
 }

2.使用 <router-view/>

<!--如果字段标识缓存,就缓存,否则不缓存--> 
<!--$route表示路由信息--> 
<router-view v-slot="{ Component }">
   <keep-alive>
     <component :is="Component" v-if="$route.meta.isKeepAlive" :key="$route.fullPath" />
   </keep-alive>
   <component :is="Component" v-if="!$route.meta.isKeepAlive" :key="$route.fullPath" />
</router-view>

3.可能的报错

报错内容:parentComponent.ctx.deactivate is not a function

解决: 给component添加key属性,否则在触发deactivate钩子时会出问题


http://www.kler.cn/a/541493.html

相关文章:

  • [学习笔记] Kotlin Compose-Multiplatform
  • PID 算法简介(C语言)
  • JS中|=是什么意思?
  • 使用Docker + Ollama在Ubuntu中部署deepseek
  • Games202 Lecture11 LTC | Disney principled BRDF | NPR
  • Linux(21)——系统日志
  • 关于SpringBoot的理解
  • 无人机常见的定位方式
  • Lisp语言的测试开发
  • 十三. Redis 应用问题和解决方案思想
  • 从零到一:我的元宵灯谜小程序诞生记
  • 从MySQL优化到脑力健康:技术人与效率的双重提升
  • IDEA接入DeepSeek
  • 企业级Mysql实战
  • Vue 响应式渲染 - Vue2 Class和style
  • 功能测试常用方法概述
  • 有关网络安全的案例分享 如何保障网络安全
  • c++面试:符号修饰
  • C# Winform 使用委托实现C++中回调函数的功能
  • Leetcode—1165. 单行键盘【简单】Plus
  • Linux 内核中断处理机制:上半部与下半部详解
  • Spring Boot @Import注解的作用
  • 基于Kotlin中Flow扩展重试方法
  • kotlin的扩展函数介绍
  • MySQL中DDL操作是否支持事务
  • STM32 HAL库 UART通讯(C语言)