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之函数直接量(function(){})()
Jun 29 Javascript
javascript 有用的脚本函数
May 07 Javascript
了不起的node.js读书笔记之mongodb数据库交互
Dec 22 Javascript
js计算德州扑克牌面值的方法
Mar 04 Javascript
Javascript字符串常用方法详解
Jul 21 Javascript
浅谈VUE监听窗口变化事件的问题
Feb 24 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
Mar 26 Javascript
js中console在一行内打印字符串和对象的方法
Sep 10 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
Nov 14 Javascript
vue跳转方式(打开新页面)及传参操作示例
Jan 26 Javascript
JavaScript数组排序功能简单实现
May 14 Javascript
JavaScript实现多层颜色选项卡嵌套
Sep 21 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初学者头疼十四条问题大总结
2008/11/12 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
2010/12/12 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
两款万能的php分页类
2015/11/12 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
PHP文件操作详解
2016/12/30 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
javascript编程起步(第二课)
2007/02/27 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
jquery validate demo 基础
2015/10/29 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
js实现点击选项置顶动画效果
2020/08/25 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
python算法演练_One Rule 算法(详解)
2017/05/17 Python
Python 结巴分词实现关键词抽取分析
2017/10/21 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
中国双语服务优势的在线购票及活动平台:247tickets
2018/10/26 全球购物
公务员职务工作的自我评价
2013/11/01 职场文书
客户接待方案
2014/02/26 职场文书
高中课程设置方案
2014/05/28 职场文书
教师党员自我评价2015
2015/03/04 职场文书
学术会议通知
2015/04/15 职场文书
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL