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 相关文章推荐
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
Nov 07 Javascript
javascript与CSS复习(《精通javascript》)
Jun 29 Javascript
浅析hasOwnProperty方法的应用
Nov 20 Javascript
javascript中拼接HTML字符串的最快、最好的方法
Jun 07 Javascript
AngularJS身份验证的方法
Feb 17 Javascript
JavaScript学习笔记之数组随机排序
Mar 23 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
Jan 05 Javascript
webpack学习教程之前端性能优化总结
Dec 05 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
Nov 18 Javascript
点击按钮弹出模态框的一系列操作代码实例
Mar 29 Javascript
vue实现下载文件流完整前后端代码
Nov 17 Vue.js
ant design charts 获取后端接口数据展示
May 25 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
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
Chrome Web App开发小结
2014/09/04 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
2006/10/19 Javascript
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
jquery win 7透明弹出层效果的简单代码
2013/08/06 Javascript
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
js判断节假日实例代码
2017/12/27 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Python中的一些陷阱与技巧小结
2015/07/10 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
python 生成器需注意的小问题
2020/09/29 Python
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
2015年会计工作总结范文
2015/05/26 职场文书
家长会后的感想
2015/08/11 职场文书
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers