vue 进入到一个新路由页面后,路由组件页面缓存,如何实现路由组件刷新重载?

vue3动态路由+页面刷新丢失路由+再次加载路由 注:这里会衍生出一个问题,第一次登录的时候,路由信息没加进去,会跳404,所以这里需要做一个判断,判断路由to.matched这个去哪里的路由信息数组有没有数据,没有就再次添加动态路由信息,还有这块需要添加一个全局标识isAddAgain是否需要重新加载路由。动态路由添加后,每次刷新页面空白,这是因为刷新后路由守卫没再次走一遍,这里就需要在App.vue里面做判断,重新添加路由信息并跳转刷新前路由。目前路由只有静态的页面,我们需要做动态路由,需要在路由守卫router.beforeEach中添加。 阅读详情

一、如何实现路由重新加载?

1-1、设置要刷新的组件v-if,通过v-if实现页面组件层重载。
<template>
	<el-container>
	  <el-header>Header</el-header>
	  <el-container>
	    <el-aside width="200px">Aside</el-aside>
	    <el-main v-if="isRouterCache">  <router-view  /></el-main>
	  </el-container>
	</el-container>
</template>
<script>
export default {
 name:'Layout',
 data () {
   return {
     isRouterCache: true
   }
 },
 methods: {
   reload () {
     this.isRouterCache = false
     this.$nextTick(() => (this.isRouterCache = true))
   }   
 }
}
</script>

注意:当前组件其实是layout.vue组件他的上一层还有app.vue组件。

1-2、对外暴露main.js中的 new Vue()实例。

在这里插入图片描述

1-3、来到我们的路由守卫配置页面。

在这里插入图片描述

1-4、配置router.beforeEach钩子守卫。
router.beforeEach((to, from, next) => {
        // 此处用于判断  然后刷新main组件$vue.$root.$children[0].$children[0]就相当于与layout组件  对应可以获取到reload方法,从而实现刷新。
        if ($vue.$root.$children[0].$children[0]) {
          $vue.$root.$children[0].$children[0].reload()
        }
        next()
      }
})

此处我们可以通过$vue去获取到当前组件的实例,再次通过$root去拿到我们的根组件,第一次 $children[0] 相当于app.vue,再一次相当于layout.vue组件,我们就可以通过这个组件实例去调用里面methods的方法。

这样既我们每次变更路由时,对应的main显示组件就会重载,这样也不会影响到如左侧或者上方的侧边栏、顶部栏等等。

vue router keepAlive的页面 到此页面根据不同条件判断是否刷新 不刷新时记录滚动条位置 需求 A—>B—>C,A页面到B页面时,B页面刷新请求数据,从C页面返回到B页面时则不刷新,需要回到原来选中滚动的地方 比如:淘宝的商品列表(B)页面跳转到详情页(C)的时候,当返回上一级的商品列表时,肯定是返回上次浏览的位置,不然用户体验很差,使用了keep-alive之后呢页面不刷新了,随之的问题就是查找特定商品列表(A—>B)时,列表一直是上次缓存的列表页。 解决办法 首先,在app.vue中使用keepAlive,如果是meta信息里keepAlive为true,那就包在keep- 阅读详情

相关推荐

iframe页面不刷新?试试这个Vue中强制刷新的小技巧(附key属性详解)

本文深入解析了Vue中iframe动态刷新的问题及解决方案,重点介绍了使用key属性强制刷新的技巧。通过分析浏览器缓存机制和Vue的虚拟DOM协调原理,提供了时间戳key等实践方案,并探讨了高级场景下的优化策略,帮助开发者有效解决iframe页面不刷新的难题。

q6r7s8t9的博客 823

vue2实现刷新后重新加载动态路由

在vue2中,如果使用了动态路由,因为http的无状态性,用户在登录状态下,每次刷新后都需要重新加载路由,否则就会出现刷新后页面丢失。具体实现是通过添加一个前置路由守卫的方法,并设置一个sessionStorage,在每一次跳转路由前进行一次判定。1.登录后设置一个sessionStorage用于判断用户是否刷新。这样就简单的解决了vue2动态路由下刷新后页面丢失的问题。2.设置一个路由前置守卫进行判定。

qq_50994125的博客 4444

9.9元ESP32-C3开发板实战:手把手教你用VSCode搭建RT-Thread最小系统(附避坑指南)

本文提供了一份详尽的实战指南,教你如何在售价仅9.9元的ESP32-C3开发板上,使用VSCode搭建RT-Thread最小系统。内容涵盖从ESP-IDF环境配置、BSP源码获取、内核补丁应用到编译下载与调试的全流程,并重点分享了版本选择、补丁应用等关键避坑技巧,旨在帮助开发者低成本、高效地启动嵌入式实时操作系统开发。

o4p5q6r7s的博客 226

vue组件刷新方法

页面会出现空白,刷新页面会触发组件的beforeCreate、create、beforeMount、mounted、beforeDestory、destoryed等生命周期的方法。方法:强制重启组件的render函数,调用该方法后只会触发beforeUpdate、updated 这两个生命周期,而且只会影响当前组件以及其插槽内容。值:利用vue虚拟DOM的算法,对比新旧节点时,发现key值改变会重新渲染组件。控制组件显示隐藏,使组件进行重绘达到刷新效果。

weixin_43962020的博客 8147

关于动态存储器dram中rank,bank,device之间的关系

DEVICE_WIDTH表示设备的带宽(单位bit),每个列(column)包含DEVICE_WIDTH 位(bit),每一行(row)包含NUM_COLS个column。   而每一个bank包含NUM_ROWS个行(row)。所以一个设备(device)的存储容量为PER_DEVICE_STORAGE =NUM_ROWS*NUM_COLS*DEVICE_WIDTH*NUM_BANKS (i

wyj7260的专栏 4732

深入解析ISO12233标准:SFR算法从理论到代码实现

本文深入解析ISO12233标准中的SFR算法,从理论到代码实现全面介绍如何量化成像系统的解析力。通过e-SFR算法测量边缘扩散函数(ESF)和空间频率响应(SFR),结合光学原理和实际代码示例,帮助开发者准确评估影像质量。文章包含关键步骤的Python实现和工程优化技巧,适用于相机测试、镜头评估等应用场景。

weixin_29200485的博客 156

VUE路由跳转并刷新页面(框架层实现)

VUE路由跳转并刷新页面

伏帅的个人技术博客 1万+

CANoe数据回放实战:如何用Replay Block精准复现实车故障(附ECU数据处理技巧)

本文深入探讨了利用CANoe的Replay Block功能进行数据回放,以精准复现实车偶发性故障的实战方法。文章重点解析了从原始OBD日志中移除目标ECU数据、转换报文方向等核心数据处理技巧,旨在帮助工程师重构真实的网络测试环境,从而高效定位并解决复杂的ECU问题。

nnn11的博客 496

Vue 组件强制刷新方式

Vue 组件强制刷新方式

Jay的个人博客 7522

数据标注工具:AiLabel.js实现标注 超详细教程 案例分享

背景:在前端开发过程中难免遇到针对图片的缩放平移;以及在图片上进行矢量数据、文本、标注的展示;如果你有上面的任何需求,恭喜你,找到组织了.... 在此背景下,AILabel.js出生了。 前面文章我们已经介绍过AiLabel.js了; https://blog.youkuaiyun.com/u012967771/article/details/113148527 npm下载地址:https://www.npmjs.com/package/ailabel github地址:https://github.com/d.

前端互助会 9365

通过薄膜太阳能电池中的热激电流量化陷阱状态

发光(led)和光伏(PV)器件的性能取决于光活性半导体材料的质量。由于材料杂质或在制造过程中在半导体材料中无意地引入缺陷,导致偏离最佳性能。这些缺陷被称为阱态,或简称“阱”,它是半导体带隙内的高能态。一般来说,陷阱的发生可能是由于材料杂质(在散装)或在不同材料层之间的界面。在有机半导体中,由于天然物质的无序性,阱态经常出现。在无机和杂化半导体(例如:杂化钙钛矿、硅……)中,晶界的存在是圈闭态的已知来源。由于陷阱产生的原因多种多样,它们对装置的影响也是多种多样的。由于载流子的多次捕获和释放事件,特别是浅阱的

FluximAG的博客 2849

vue 跳转同一路由,页面不刷新解决方案

vue 跳转同一路由,页面不刷新解决方案 问题原因 : vue官网详细解释说明使用同一路由携带不同参数,本质上是重用相同的组件实例,默认在跳转路由时会采用缓存策略,并不会刷新当前路由组件,因此不会调用组件的生命周期挂钩 解决方案1 - 监听路由变化 官方提供的解决方案为要对同一组件更改做出反应,监听$route的变化,或者使用使用2.2中引入的beforeRouteUpdate 导航卫士,调用对应的方法 //#/mk_gsui?id=2 // 监控data中的数据变化 watch: { $r

qq_35897953的博客 1万+

华为OD最新机试真题-池化资源共享

摘要:该问题要求管理n台设备的资源池,处理资源申请和释放操作。申请操作需返回满足条件且剩余资源最少的设备ID,释放操作需将指定申请的资源归还。采用线段树数据结构维护各设备当前最大可用资源值,支持快速查询和更新。线段树实现了单点修改、区间最大值查询以及查找最左满足条件的节点功能。算法时间复杂度为O((n+m)logn),空间复杂度O(n),适用于大规模操作。提供了C++、Java和Python三种实现方案。

面试高手的博客 326

【VUE3使用记录】页面及路由刷新

整理工作中用到的页面刷新方式 1.provide/inject 2.router.go(0) 3.location.reload 4.重复点击菜单时刷新页面

cpsxn的博客 1万+

Palantir 凭什么两年涨 20 倍?深度解析解决 AI 幻觉的 “本体论“ 核心原理

本文深度解析了Palantir本体(Ontology)的核心原理及其在企业AI应用中的革命性价值。本体通过构建结构化的语义层与动态执行层,将企业分散的数字资产(数据集、虚拟表、模型)映射为现实世界的数字孪生,使大模型能够在**严格的业务规则与数据边界内**进行推理与决策,从而从架构层面彻底解决AI幻觉问题。这一技术架构不仅帮助Palantir实现股价两年增长20倍、市值突破4000亿美金的商业成功,更成为SAP、Salesforce等ERP巨头争相模仿的下一代企业智能标准范式。通过航空业飞机故障应急处理等实

program哲学 227

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

vue缓存页面数据,即在进行路由跳转时,缓存跳转前页面数据

背景:想弄一个路由跳转时,保留当前页面数据,不然每次跳转回来后,就要重新写一遍,太麻烦了。 发现vue的标签,与标签搭配使用,可以达到目的。 //在.vue文件中,使用<keep-alive>标签包裹<router-view>标签 <keep-alive> <router-view></router-view> </keep-alive> //这样就可以将路由跳转页面缓存起来 //有时候,我们不一定需要缓存全部页面,只有部分页

BluerCat的博客 5460

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

vue判断当前是哪个页面_vue 判断页面是首次进入还是再次刷新的实例

我就废话不多说了,大家还是直接看代码吧~判断页面是首次进入还是再次刷新export default {data(){return{}},mounted () {//第一种方法// if(window.name == ""){// console.log("首次被加载");// window.name = "isReload"; // 在首次进入页面时我们可以给window.name设置一个固定值/...

weixin_29861235的博客 4371

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

vue 处理页面缓存问题,点击tab标签不刷新页面,点击菜单刷新页面,附带处理报表iframe缓存页面

效果图 1、index页面 主要代码 <keep-alive :include="keepAliveList"> <router-view class="avue-view" v-if="keepAlive"/> </keep-alive> provide() { return { index: this, routerRefresh: this.routerRefresh }; }, data() { return

weixin_40466351的博客 6705

vue系列 —— vue-route详细使用方法

说到路由, 我们最熟悉的路由是什么呢? 那就是路由器了。 其实路由器有两个重要的功能: 路由和传送 路由: 路由决定数据包从哪里来, 到哪里去。 也有是来源和目的地的路径。 路由中有一个路由表,路由表本质上就是一个映射表,决定了数据包的传输方向。 传送: 传送是将输入端的数据传送给输出端 下面我们先来搭建一个项目, 然后一边学习一遍在项目里实战 创建vue-cli2项目 vue init webpacek vueroute 然后一路向下就可以了, 如果本地创建项目很慢, 可以采用离线创建项目的

七月 3万+

刷新页面功能实现逻辑分析:中间路由机制的原理与优势

本文介绍了一种基于中间路由机制的页面刷新方案。核心流程包括:1)从缓存列表移除当前路由;2)调用useRedo()跳转中间路由;3)通过中间路由组件还原原始路由。该方案相比常规replace方法具有三大优势:强制组件重新渲染、支持复杂参数安全传递、提供统一开发接口。中间路由组件通过解析路由类型和参数,使用replace跳转回原始路由,确保参数完整传递和组件重新挂载。适用于需要完全刷新页面状态、重新获取数据或清除组件副作用的场景,相比常规方案能提供更可靠的刷新效果和更优的开发者体验。

m0_45093055的博客 1079

若依前端,菜单栏切换时刷新问题 [页面菜单切换时,页面总是重新刷新,导致页面输入的查询参数重载清空]

组件中name、id和菜单中路径保持一致即可,不要写list。

qq_40603125的博客 3850

Vue进阶(六十四):iframe更改src后页面未刷新问题解决

document.getElementById(iframe的id).contentWindow.location.reload(true); 在更改iframe src属性值之前加上这一句即可。

IT全栈 华强工作室 2万+

Vue解决路由切换刷新问题

法一 1.App.vue <!-- App.vue根组件代码 --> <template> <div class="app"> <div class="content"> <router-view v-if="routerAlive"></router-view> &l...

weixin_43837268的博客 2037

Vue3缓存两种:路由缓存与Pinia状态缓存

单页应用中,最令人头疼的就是页面刷新或者回退时,数据丢失或重新加载的问题。本文以微小demo介绍两种缓存以应付Vue3项目中的绝大多数需要缓存的业务。

m0_64469199的博客 2119

告别页面重载!vue-vben-admin缓存策略完全指南

你是否还在为管理系统中频繁的页面重载烦恼?是否遇到过表单填写一半刷新后数据丢失的尴尬?本文将带你全面掌握vue-vben-admin中的路由缓存与组件缓存最佳实践,通过10分钟的学习,你将获得: - 路由缓存的3种启用方式及场景选择 - 组件级缓存的精细控制技巧 - 缓存失效问题的5种解决方案 - 大型列表页性能优化实战案例 ## 缓存架构概览 vue-vben-admin采用双层缓存架构设计...

gitblog_00276的博客 529

keep-alive+vuex实现页面数据缓存

在使用VUE开发项目时,从列表页跳转到详情页后。每次返回会发现列表页都会进行重载。尤其是在列表页涉及到tab切换时,重载后用户还需要再次操纵切换。体验度大大降低。 可以选用keep-alive 里的include+VUEX进行动态缓存 如:从A>B>C页面时候,让页面刷新。从C>B>A时候让B禁止刷新。也就是需要将B页面存入缓存中。 实现:首先需要在A/B/C各自的单页...

qq_36229632的博客 1569
上一篇: 在js文件中使用Vue.extend与new Vue().$mount 实现挂载vue文件?
下一篇: 什么是javaScript的EventLoop(事件循环)?EventLoop采用何种机制进行循环,用于解决什么?
归来巨星
归来巨星 新星创作者: 前端开发技术领域 新星创作者: 前端开发技术领域
博客等级 码龄7年 5391粉丝 95原创
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归来巨星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值