博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
element-admin 点击侧边栏刷新当前路由
阅读量:6225 次
发布时间:2019-06-21

本文共 1382 字,大约阅读时间需要 4 分钟。

hot3.png

需求:点击左菜单刷新当前路由页面。

通过查询资料,找到两种实现方式

第1种:在路由后面加上时间戳,通过不断改变 url 的 query 来触发 view 的变化,监听侧边栏每个 link 的 click 事件,每次点击都给 router push 一个不一样的 query 来确保会重新刷新 view。

// 路径地址: src\views\layout\components\Sidebar\Link.vueexport default {  props: {    to: {      type: String,      required: true    }  },  methods: {    testClick(url) {      sessionStorage.setItem('defaultActive', JSON.stringify(url))      // 通过时间戳实现菜单刷新      this.$router.push({        path: url,        query: {          t: +new Date() // 保证每次点击路由的query项都是不一样的,确保会重新刷新view        }      })    },    linkProps(url) {      return {        is: 'div'      }    }  }}

存在问题:点击后路由后面都加了一串时间戳导致累赘,另外虽然模拟了刷新了当前页面,但实际并没有重新请求接口

第2种,花裤衩提供的方法,创建一个空的Redirect页面,通过判断当前点击的菜单路由和当前的路由是否一致,一致的时候,会先跳转到专门 Redirect 的页面,然后将路由重定向到我想去的页面,这样就起到了刷新的效果了。展示方式如图1

 

//  1.  src\utils\request.js  首先添加路由{    path: '/redirect', // 重定向路由    // component: () => import('@/views/layout/components/Sidebar/redirect'), hidden: true    component: Layout,    hidden: true,    children: [{      path: '',      component: () => import('@/views/layout/components/Sidebar/redirect')    }]},//  2.  src\views\layout\components\Sidebar\redirect.vue 添加如下代码 进行重定向//  3.  src\views\layout\components\Sidebar\Link.vue 菜单页面添加如下代码 进行跳转 

9217ae9bf20331d7cf12bd2cf677bd4361e.jpg

如上,即可实现点击当前菜单实现页面刷新,两种方案各有利弊,各位小伙伴如有更好的实现方式欢迎留言和私信。

参考:

转载于:https://my.oschina.net/lemonfive/blog/3050003

你可能感兴趣的文章
微信公众平台源码
查看>>
Struts2--HelloWord
查看>>
linux C学习笔记05--信号量与共享内存(进程同步)
查看>>
go-mysql,一个易用的mysql接口框架实现
查看>>
POJ3320 Jessica's Reading Problem【尺取法】
查看>>
201671010117 2016-2017-2《Java程序设计》第八周学习Java心得
查看>>
画廊视图(Gallery)的功能和用法
查看>>
自己动手编写一个VS插件(七)
查看>>
Android里面的Toast
查看>>
mysql双机热备的实现
查看>>
前加绩中国、信雅达高级全栈工程师:吴劲松
查看>>
-bash: pod: command not found 解决办法
查看>>
GCD hdu1695容斥原理
查看>>
Node.js:回调函数
查看>>
python 发送邮件 <QQ+腾讯企业邮箱>
查看>>
细数JDK里的设计模式
查看>>
Linux~上部署.net MVC出现的问题与解决
查看>>
DDD~充血模型和失血模型
查看>>
android DPI与分辨率的关系及计算方式
查看>>
forward_list
查看>>