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源码]超长文章自动分页(客户端版)
Jan 09 Javascript
javascript表单验证和Window详解
Dec 11 Javascript
jQuery中width()方法用法实例
Dec 24 Javascript
jquery马赛克拼接翻转效果代码分享
Aug 24 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
May 16 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
Nov 16 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
Jan 08 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
Jan 16 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
Aug 31 Javascript
详解javascript设计模式三:代理模式
Mar 25 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
May 22 Javascript
Vue.js如何使用Socket.IO的示例代码
Sep 05 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 sprintf()函数用例解析
2011/05/18 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
2014/04/01 PHP
用PHP代码给图片加水印
2015/07/01 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
jQuery 性能优化指南 (1)
2009/05/21 Javascript
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
Python ZipFile模块详解
2013/11/01 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
python读写LMDB文件的方法
2018/07/02 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
numpy按列连接两个维数不同的数组方式
2019/12/06 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
python中id函数运行方式
2020/07/03 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
为什么group by 和order by会使查询变慢
2014/05/16 面试题
小学生节约用水倡议书
2014/05/15 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
2015年大学团支部工作总结
2015/05/13 职场文书
国际贸易实训总结
2015/08/03 职场文书
关于环保的广播稿
2015/12/17 职场文书
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js
用 Python 元类的特性实现 ORM 框架
2021/05/19 Python