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获取或设置当前窗口url参数的小例子
Oct 14 Javascript
JavaScript语言精粹经典实例(整理篇)
Jun 07 Javascript
JavaScript实现简单的拖动效果
Jul 02 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
Aug 25 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
May 08 jQuery
JavaScript严格模式下关于this的几种指向详解
Jul 12 Javascript
Vue 中使用 CSS Modules优雅方法
Apr 09 Javascript
js实现购物车功能
Jun 12 Javascript
Layui 解决表格异步调用后台分页的问题
Oct 26 Javascript
Node在Controller层进行数据校验的过程详解
Aug 28 Javascript
浅谈Vue static 静态资源路径 和 style问题
Nov 07 Javascript
Vue Elenent实现表格相同数据列合并
Nov 30 Vue.js
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
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
php排序算法实例分析
2016/10/17 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
2017/04/07 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
深入理解Promise.all
2018/08/08 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
Python中的defaultdict模块和namedtuple模块的简单入门指南
2015/04/01 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
2020/01/10 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
最新自我评价范文
2013/11/16 职场文书
毕业生护理专业个人求职信范文
2014/01/04 职场文书
家长对小学生的评语
2014/01/28 职场文书
老同学聚会感言
2014/02/23 职场文书
yy司仪主持词
2014/03/22 职场文书
大学生自我鉴定书
2014/03/24 职场文书
人大调研汇报材料
2014/08/14 职场文书
师范生见习总结范文
2015/06/23 职场文书
创业计划书之餐饮
2019/09/02 职场文书
了解Redis常见应用场景
2021/06/23 Redis