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 相关文章推荐
Jquery getJSON方法详细分析
Dec 26 Javascript
使用delegate方法为一个tr标签加一个链接
Jun 27 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
Jul 17 Javascript
JS实现自动变换的菜单效果代码
Sep 09 Javascript
深入理解jquery中的each用法
Dec 14 Javascript
Angular2搜索和重置按钮过场动画
May 24 Javascript
简单实现jquery隔行变色
Nov 09 jQuery
基于Vue的移动端图片裁剪组件功能
Nov 28 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
Jun 19 Javascript
vue axios封装及API统一管理的方法
Apr 18 Javascript
在VUE中使用lodash的debounce和throttle操作
Nov 09 Javascript
React forwardRef的使用方法及注意点
Jun 13 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函数解决SQL injection
2006/10/09 PHP
用PHP实现验证码功能
2006/10/09 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
javascript中字符串拼接需注意的问题
2010/07/13 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
python实现的希尔排序算法实例
2015/07/01 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
python 使用 requests 模块发送http请求 的方法
2018/12/09 Python
对python 判断数字是否小于0的方法详解
2019/01/26 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
关于圣诞节的广播稿
2014/01/26 职场文书
法定代表人授权委托书范文
2014/08/02 职场文书
大学生实习证明范本
2014/09/19 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
新员工入职感想
2015/08/07 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python