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

vue路由缓存问题

什么是路由缓存问题

解决方案:

  1. 让组件实例不再复用,强制销毁重建
  2. 监听路由变化,变化之后执行数据更新操作

方法一

给 routerv-view 添加key属性,强制不添加缓存,破坏缓存,所以这个方法性能会比较差

<RouterView :key="$route.fullPath"/>

方法二

使用 onBeforeRouteUpdate钩子函数,做精确更新

没用onBeforeRouteUpdate前的渲染

//获取组件内部的路由参数,用useRoute
const route = useRoute()
const categoryData = ref([])
const getCategory = async ()=>{// 如何在setup中获取路由参数 useRoute() -> route 等价于this.$routeconst res = await getTopCategoryAPI(route.params.id)categoryData.value = res.result
}
onMounted(()=>getCategory())

用onBeforeRouteUpdate后

//获取组件内部的路由参数,用useRoute
const route = useRoute()
const categoryData = ref([])//如果调用该函数时没有传入 id,则默认使用 route.params.id 的值。
const getCategory = async (id = route.params.id)=>{// 如何在setup中获取路由参数 useRoute() -> route 等价于this.$routeconst res = await getTopCategoryAPI(id)categoryData.value = res.result
}
onMounted(()=>getCategory())onBeforeRouteUpdate((to)=>{//to 是即将进入的路由对象getCategory(to.params.id)
})

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

相关文章:

  • RabbitMQ中如何解决消息堆积问题,如何保证消息有序性
  • python爬虫案例——selenium爬取淘宝商品信息,实现翻页抓取(14)
  • 在VSCode中使用Excalidraw
  • 25中国投资中投笔试测评秋招校招SHL笔试题型分享
  • 【LeetCode热题100】分治-快排
  • Docker 教程四 (Docker 镜像加速)
  • 各类排序详解
  • 【c语言——指针详解(4)】
  • C# (.net6)实现Redis发布和订阅简单案例
  • 【golang】gorm 使用map实现in 条件查询用法
  • 理论篇| 移动端爬虫
  • systemd实现seatunnel自动化启停
  • MySQL-08.DDL-表结构操作-创建-案例
  • 完成Sentinel-Dashboard控制台数据的持久化-同步到Nacos
  • RocketMq详解:三、RocketMq通用生产和消费方法改造
  • 基于SpringBoot+Vue+Uniapp的仓库点单小程序的详细设计和实现
  • R语言从多波段tif数据中逐个提取单波段数据
  • 华为海思:大小海思的双轮驱动战略分析
  • LeetCode | 704.二分查找
  • TCP三握四挥
  • java项目之大型商场应急预案管理系统(源码+文档)
  • 【C++】--内存管理
  • 【设计模式系列】模板方法模式
  • java8 Stream流详细API及用法
  • Redis——持久化
  • 川字结构布局/国字结构布局
  • 2013年国赛高教杯数学建模C题古塔的变形解题全过程文档及程序
  • web 0基础第一节 文本标签
  • Zookeeper快速入门:部署服务、基本概念与操作
  • 【Sqlite】sqlite内部函数sqlite3_value_text特性