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在IE和Firefox(火狐)的不兼容问题解决方法小结
Apr 13 Javascript
JS获取当前网址、主机地址项目根路径
Nov 19 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
May 24 Javascript
jQuery实现发送验证码并60秒倒计时功能
Nov 25 Javascript
js设置文字颜色的方法示例
Dec 30 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
vue 怎么创建组件及组件使用方法
Jul 27 Javascript
Django+Vue跨域环境配置详解
Jul 06 Javascript
vue router导航守卫(router.beforeEach())的使用详解
Apr 19 Javascript
javascript实现抢购倒计时程序
Aug 26 Javascript
Vue项目开发常见问题和解决方案总结
Sep 11 Javascript
vue 中 get / delete 传递数组参数方法
Mar 23 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
PHP 文件上传限制问题
2019/09/01 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
超级退弹代码
2008/07/07 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
第一次接触JS require.js模块化工具
2016/04/17 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
vuejs绑定class和style样式
2017/04/11 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
Vue中的slot使用插槽分发内容的方法
2018/03/01 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
Python中用sleep()方法操作时间的教程
2015/05/22 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
与Django结合利用模型对上传图片预测的实例详解
2019/08/07 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
毕业生求职推荐信
2013/11/04 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
企业消防安全责任书
2014/07/23 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书