若依 this.$router.push 同地址不同参,页面不刷新问题

简介: 若依 this.$router.push 同地址不同参,页面不刷新问题

背景:若依框架里面默认页面都是缓存的,使用this.$router.push 同地址不同参打开页面时,页面也默认缓存了,导致数据不刷新。


解决办法:


1、打开页面前创建一个标记


sessionStorage.setItem("cgsqmx","Refresh");


2、离开页面时发现有这个标记,然后删若依缓存

beforeRouteLeave (to, from, next) {
  debugger;
    if (to.name === 'Cgsqmx' && sessionStorage.getItem("cgsqmx")==="Refresh") {
      try {
        var cache = this.$vnode.parent.componentInstance.cache;
        var key="";
        for(var prop in cache){
          if(prop.lastIndexOf("cgsqmx")>0){
            key=prop;
          }
        }
        if(key!=""){
          delete cache[key];
        }
      } catch (error) {
      }
      // // console.log('返回管理页面')
      // if (this.$vnode && this.$vnode.data.keepAlive) {
      //   if (this.$vnode.parent && this.$vnode.parent.componentInstance && this.$vnode.parent.componentInstance.cache) {
      //     if (this.$vnode.componentOptions) {
      //       var key = this.$vnode.key == null
      //         ? this.$vnode.componentOptions.Ctor.cid + (this.$vnode.componentOptions.tag ? `::${this.$vnode.componentOptions.tag}` : '')
      //         : this.$vnode.key
      //       var cache = this.$vnode.parent.componentInstance.cache
      //       var keys = this.$vnode.parent.componentInstance.keys
      //       if (cache[key]) {
      //         if (keys.length) {
      //           var index = keys.indexOf(key)
      //           if (index > -1) {
      //             keys.splice(index, 1)
      //           }
      //         }
      //         delete cache["key"]
      //         debugger;
      //       }
      //     }
      //   }
      // }
      this.$destroy()
    }
    next()
  },


3、到达目标页面后,清空标记

sessionStorage.setItem("cgsqmx","");
目录
相关文章
|
8月前
若依框架 --- 修改默认跳转页面
若依框架 --- 修改默认跳转页面
804 0
|
5月前
|
JavaScript
成功解决:如何通过this.$router.push(“/Login“)的方式传参,在另外一个页面接收数据的问题
这篇文章介绍了如何在Vue框架中通过路由跳转传递参数,并在另一个页面接收这些参数。具体方法是使用`this.$router.push`方法的`params`属性传递对象,然后在目标页面通过`this.$route.params`接收传递的参数。
成功解决:如何通过this.$router.push(“/Login“)的方式传参,在另外一个页面接收数据的问题
|
4月前
|
前端开发 JavaScript UED
react或者vue更改用户所属组,将页面所有数据进行替换(解决问题思路)____一个按钮使得页面所有接口重新请求
在React或Vue中,若需在更改用户所属组后更新页面所有数据但不刷新整个页面,可以通过改变路由出口的key值来实现。在用户切换组成功后,更新key值,这会触发React或Vue重新渲染路由出口下的所有组件,从而请求新的数据。这种方法避免了使用`window.location.reload()`导致的页面闪烁,提供了更流畅的用户体验。
62 1
react或者vue更改用户所属组,将页面所有数据进行替换(解决问题思路)____一个按钮使得页面所有接口重新请求
|
6月前
|
JavaScript
若依修改---白名单怎样添加,怎样在初始化页面初始为自己的页面
若依修改---白名单怎样添加,怎样在初始化页面初始为自己的页面
若依修改---白名单怎样添加,怎样在初始化页面初始为自己的页面
|
6月前
|
网络架构
若依修改 :id 不跳转注释的资料,路由配置:id不跳转修改,若依的store的permission.js对动态路由有控制
若依修改 :id 不跳转注释的资料,路由配置:id不跳转修改,若依的store的permission.js对动态路由有控制
若依修改 :id 不跳转注释的资料,路由配置:id不跳转修改,若依的store的permission.js对动态路由有控制
路由不跳转,常见流程-----ElementPlus如何点击某页跳转页,el-menu中必须加上router=“true“,否则不跳转,index写完成路由路径就行,后面的router也写完整的
路由不跳转,常见流程-----ElementPlus如何点击某页跳转页,el-menu中必须加上router=“true“,否则不跳转,index写完成路由路径就行,后面的router也写完整的
|
6月前
|
前端开发 JavaScript Linux
若依修改之后,无法访问前端项目如何解决,只能访问后端的接口,我的接口8083,端不显示咋解决?在vue.config.js文件中的映射路径要跟后端匹配,到软件商店里找到Ngnix配置代理,设80不用加
若依修改之后,无法访问前端项目如何解决,只能访问后端的接口,我的接口8083,端不显示咋解决?在vue.config.js文件中的映射路径要跟后端匹配,到软件商店里找到Ngnix配置代理,设80不用加
若依修改,切换首页,改成自己想要跳转的login页
若依修改,切换首页,改成自己想要跳转的login页
|
6月前
vue3 在 watchEffect 里中断未完成的 axios 请求(只保留最后一次请求的方法---连续点击查询按钮的优化)
vue3 在 watchEffect 里中断未完成的 axios 请求(只保留最后一次请求的方法---连续点击查询按钮的优化)
148 0
|
7月前
|
存储
this.$router.push点了后hash地址改变了,页面却不跳转
this.$router.push点了后hash地址改变了,页面却不跳转

热门文章

最新文章

下一篇
开通oss服务