antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作


Posted in Javascript onAugust 06, 2020

废话不说,上代码!

<a-menu theme="dark" mode="inline" :selectedKeys="[$route.path]">
     <a-menu-item :key="'/home'">
      <router-link to="home">
       <a-icon type="user" />
       <span>nav 1</span>
      </router-link>
     </a-menu-item>
     <a-menu-item :key="'/about'">
      <router-link to="about">
       <a-icon type="video-camera" />
       <span>nav 2</span>
      </router-link>
     </a-menu-item>
     <a-menu-item :key="'/123123'">
      <router-link to="123123">
       <a-icon type="upload" />
       <span>nav 3</span>
      </router-link>
     </a-menu-item>
    </a-menu>

重点:

1,selectedkeys要设置成$route.path地址

2,a-menu-item 的key设置成要去的地址

刷新页面,成功!

补充知识:vue根据路由刷新页面(切换菜单刷新页面)

刷新页面有两种方法:

一种是用:localtion.reload();但是这种是重新加载页面,造成一闪一闪的效果。

一种是用provide+inject,

provider/inject:简单的来说就是在父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量。

需要注意的是这里不论子组件有多深,只要调用了inject那么就可以注入provider中的数据。而不是局限于只能从当前父组件的prop属性来获取数据。

1.在app.vue页面中加入

<div id="app">
   <router-view v-if="isRouterAlive"></router-view>
 </div>
provide() {
   return{
    reload: this.reload
   }
  },
  data() {
   return {
    isRouterAlive: true
   }
  },
 methods: {
   reload () {
    this.isRouterAlive = false;
    this.$nextTick(function () {
     this.isRouterAlive = true
    })
   }
  },

2.在菜单页面加入

inject: ['reload'], // 注入重载的功能(注入依赖)
watch: {
  //检测路由参数发生改变时,刷新当前页面 调用
  '$route': function(){
   // this.reload();
  }
 },

3.注意这个@click方法,里面就是调用重新加载的方法

<el-menu-item v-if="validatenull(item[childrenKey]) && vaildRoles(item)"
          :index="item[pathKey]"
          @click="open(item)"
          :key="item[labelKey]"
          :class="{'is-active':vaildAvtive(item)}"
          >

调用this.reload()方法,即可重新加载路由刷新页面。

open(item) {
   if (this.screen <= 1) this.$store.commit("SET_COLLAPSE");
   this.$router.$avueRouter.group = item.group;
   this.$router.push({
    path: this.$router.$avueRouter.getPath({
     name: item[this.labelKey],
     src: item[this.pathKey]
    }),
    query: item.query,
   });
   this.reload();
  },

以上这篇antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中的History历史对象
Jan 16 Javascript
将form表单中的元素转换成对象的方法适用表单提交
May 02 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
Jun 11 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
Dec 03 Javascript
jQuery中的一些常见方法小结(推荐)
Jun 13 Javascript
javaScript给元素添加多个class的简单实现
Jul 20 Javascript
轻松掌握JavaScript享元模式
Aug 27 Javascript
微信小程序组件 marquee实例详解
Jun 23 Javascript
详解使用nvm安装node.js
Jul 18 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
Mar 14 Javascript
java实现单链表增删改查的实例代码详解
Aug 30 Javascript
react 路由Link配置详解
Nov 11 Javascript
javascript实现页面的实时时钟显示示例
Aug 06 #Javascript
Javascript如何递归遍历本地文件夹
Aug 06 #Javascript
通过vue刷新左侧菜单栏操作
Aug 06 #Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
Aug 06 #Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
Aug 06 #Javascript
前端开发基础javaScript的六大作用
Aug 06 #Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
Aug 06 #Javascript
You might like
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
基本DOM节点操作
2017/01/17 Javascript
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
python内存管理分析
2015/04/08 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
python 初始化一个定长的数组实例
2019/12/02 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
英国皇家造币厂:The Royal Mint
2018/10/05 全球购物
"序列点" 是什么
2016/07/29 面试题
安全生产检讨书
2014/01/21 职场文书
学校师德承诺书
2014/05/23 职场文书
会计演讲稿范文
2014/05/23 职场文书
社团活动总结怎么写
2014/06/30 职场文书
2014年纠风工作总结
2014/12/08 职场文书
技术负责人岗位职责
2015/02/10 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书