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

前端学习记录:解决路由缓存问题

问题描述:响应路由参数的变化,使用带有参数的路由时需要注意的是,当用户从 /users/johnoy 导航到 /users/jolyne 时,相同的组件实例将会被重复使用。因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会被调用

简单来说就是,响应路由只有参数变化,而且这些路由渲染的组件都是同一个,只是组件请求并绑定的数据不一样。这样的话用户从 /users/johnoy 导航到 /users/jolyne 时,这个组件就不会被销毁,而是一直存在,所以它的onMounted等钩子都不会被触发。

正常来说,我们向后端请求数据会在onMounted函数进行,那么导致的后果就是当路由即使正确跳转了,我们渲染的网页并不会刷新数据(这就很坏了

解决问题的思路有两个:

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

方案一

以当前路由完整路径为key值,给RounterView组件绑定

key通常与v-for进行配套使用,但是他也能用于强制替换一个元素/组件而不是复用

适当时候触发组件生命周期钩子

触发过滤

这是第一个解决思路的实现,比较消耗性能

方案二

beforeRouteUpdate导航守卫,beforeRouteUpdate钩子函数可以在每次路由更新之前执行,在回调中执行需要数据更新的业务逻辑即可。这是解决思路2的实现

或者使用watch监听路由参数,从而刷新数据

这种方法的性能更好一些

相关文章:

  • 东芝2323AMW复印机安装纸盒单元后如何添加配件选项
  • 【商城实战(38)】Spring Boot:从本地事务到分布式事务,商城数据一致性的守护之旅
  • 嵌入式系统中的Board Support Package (BSP)详解:以Xilinx Zynq为例
  • AndroidStudio+Android8.0下的Launcher3 导入,编译,烧录,调试
  • BSP、设备树和HAL的关系:以Xilinx Zynq为例与PC BIOS的对比
  • nginx请求限流设置:常见的有基于 IP 地址的限流、基于请求速率的限流以及基于连接数的限流
  • 结构体定义与应用
  • 查看分析日志文件、root密码不记得了,那应该怎么解决这些问题
  • Web开发-PHP应用鉴别修复AI算法流量检测PHP.INI通用过滤内置函数
  • SGMEA: Structure-Guided Multimodal Entity Alignment
  • 【AWS入门】AWS云计算简介
  • 文档搜索引擎
  • PyTorch使用-张量数值计算
  • element-plus中DatePicker 日期选择器组件的使用
  • 【GPT入门】第24课 langfuse介绍
  • An Introduction to Stable Diffusion
  • 【Linux我做主】基础命令完全指南下篇
  • 规模效应的三重边界:大白话解读-deepseek为例
  • HR9110 玩具单通道直流电机驱动器
  • 【Go语言圣经2.4】
  • 删除wordpress所以评论/seo网络营销技术
  • 做那种事免费网站/滕州百度推广
  • 南通网站排名团队/如何实现网站的快速排名
  • 网站建设的三大原则/网络营销成功的品牌
  • 南通优化网站费用/下载百度到桌面上
  • 东莞制作手机网站/常见的网络推广方式