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

记录一下vue2和vue3中如何配置keep-alive及写法上的差异

应用场景

跳转下一个页面后,返回当前页面,或者在多个页面之间切换,保留页面中的所有状态,常见的就是填写到一半的表单。h5的tabbar页面缓存,避免重复加载数据。

主要实现思路

这个东西很常见,动态路由一般将是否缓存页面的配置放在数据库中。这里写在本地方便看。

  • 在路由的meta中设置该页面是否缓存
  {path: 'xxx',name: 'xxx',component: () => import('@/views/xxxx/xxxx.vue'),meta: { title: "创建xxx", isCache: true },}
  • 拿到route实例进行配置
//vue2 
this.$route
//vue3 
const route = useRoute();
  • 设置keep-alive组件的key为用户的token或者当前登录用户的userId,避免退出系统重新登陆与上个用户混淆
<keep-alive :key="userStore.userToken" :key="userStore.userToken">

vue3主要实现代码

	<router-view v-slot="{ Component }"><keep-alive :key="yourUserToken"><component :is="Component" v-if="route.meta.isCache" :key="route.fullPath" /></keep-alive><component :is="Component" v-if="!route.meta.isCache" /></router-view>

vue2主要实现代码

<div><keep-alive :key="yourUserToken"><router-view v-if="$route.meta.isCache" /></keep-alive><router-view v-if="!$route.meta.isCache" />
</div>

总结

3和2的写法上是有差异的,这里写一下分享给刚入门不知道的朋友

http://www.lryc.cn/news/424948.html

相关文章:

  • 面试题:Rabbitmq怎么保证消息的可靠性?
  • 性能测试工具之JMeter
  • SQL Zoo 9-.Window functions
  • 智能化清理C盘的方法 小白也可以轻松清理C盘了 不再担心误删文件
  • 在c#中常用的特性
  • Polars简明基础教程十二:可视化(二)
  • python 使用正则表达式判断图片路径是否是超链接
  • 【学习笔记】Day 14
  • 使用SSL认证访问操作手册
  • 网络协议 十一 ARP,RARP,icmp,websocket,webservice,HTTPDNS,FTP,邮件相关的协议, SMTP,POP,IMAP
  • 浏览器插件利器--allWebPluginV2.0.0.16-Stable版发布
  • 设计模式22-迭代器模式
  • 编程深水区之并发⑥:C#的线程池
  • KCTF 闯关游戏:1 ~ 7 关
  • 【海贼王航海日志:前端技术探索】一篇文章带你走进JavaScript(二)
  • 鸿蒙内核源码分析(进程管理篇) | 谁在管理内核资源?
  • SQLALchemy 自动从数据库中映射
  • C++ stack与queue的使用与简单实现
  • 【CS.DB】数据库-关系型数据库-MySQL-3.3.创建和管理表
  • Ceph分布式存储系统的搭建与使用
  • 通过Redsocks将Kali Linux的流量进行代理
  • 基于java五台山景点购票系统(源码+论文+部署讲解等)
  • 基于springboot的网上服装商城
  • QT、C++简单界面设计
  • 代码随想录算法训练营43期 | Day 10——栈与队列part1
  • Java中常用的设计模式
  • leetcode 11-20(2024.08.15)
  • C语言整数溢出的问题
  • Linux学习之路 -- 进程 -- 进程间通信 -- 管道通信
  • GB/T 38082-2019 生物降解塑料购物袋检测