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入门教程(12) js对象化编程
Jan 31 Javascript
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
Feb 18 Javascript
js调用css属性写法
Sep 21 Javascript
Javascript基础知识(三)BOM,DOM总结
Sep 29 Javascript
Javascript中实现trim()函数的两种方法
Feb 04 Javascript
理解javascript模块化
Mar 28 Javascript
jquery.serialize() 函数语法及简单实例
Jul 08 Javascript
自定义require函数让浏览器按需加载Js文件
Nov 24 Javascript
JavaScript获取短信验证码(周期性)
Dec 29 Javascript
详解.vue文件中监听input输入事件(oninput)
Sep 19 Javascript
vue2.0使用swiper组件实现轮播效果
Nov 27 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
Jul 09 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
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
php随机显示图片的简单示例
2014/02/15 PHP
yii操作cookie实例简介
2014/07/09 PHP
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
PHP上传文件时自动分配路径的方法
2015/01/09 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
2015/12/08 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
理解Javascript的动态语言特性
2015/06/17 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
2017/01/13 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
vue 组件中slot插口的具体用法
2018/04/03 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
Python算法之栈(stack)的实现
2014/08/18 Python
python使用turtle库绘制时钟
2020/03/25 Python
python将回车作为输入内容的实例
2018/06/23 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
儿科护士自我鉴定
2013/10/14 职场文书
访谈节目策划方案
2014/05/15 职场文书
护士个人年终总结
2015/02/13 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
python_tkinter弹出对话框创建
2022/03/20 Python