vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Element ui导航栏选中背景色刷新消失

解决Element ui导航栏选中背景色刷新消失的问题

作者:猴子都会我不会

这篇文章主要介绍了解决Element ui导航栏选中背景色刷新消失的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Element ui导航栏选中背景色刷新消失

<el-menu
        :is-collapse="isCollapse"
        text-color="#fff"
        active-text-color="#fff"
        :default-active="activerouter"
        :router="true"
      >
</el-menu>
 //重点在于:default-active="activerouter"的设置

 1.activerouter 挂在data 中

data() {
    return:activerouter;
}

mounted() {
    this.activerouter =  window.location.pathname
   //正常情况下加上这句话是可以解决的,如果解决不了,继续往下看
  },

2.给menuItem加点击事件,路由地址作为参数

<el-menu-item
            :index="subItem.path"
            class="active_bg"
            :class="{ active_bg: index == activeIndex }"
            @click="selectMenuItem(subItem.path)"
          >
</el-menu-item>

3.把拿到的路由地址保存在本地

selectMenuItem(path) {
      this.activerouter = path
      window.sessionStorage.setItem("activerouter", path);
    },

  

4.敲黑板注意,这个时候mounted()里面写的就是如下了,就别再用location.pathname啦

mounted() {
    //获取地址栏中的路由,设置elementui中的导航栏选中状态
    this.activerouter =  window.sessionStorage.getItem("activerouter");
    console.log('activerouter',this.activerouter)
  },

Element ui导航栏选中高亮,刷新后选中消失

侧边菜单

导航栏选中后重新刷新页面会发现选中的导航栏高亮消失了,或者跳到了其它选项,这里的思路就是定义方法,把路由存入到sessionStorage,页面重新加载的时候从sessionStorage中获取

<!--侧边菜单-->
         <el-menu :default-active="active" class="el-menu-vertical-demo" router>
            <router-link to="/user" style="text-decoration: none">
              <el-menu-item index="/user" v-if="isflag" @click="selectMenuItem('/user')"> 
                <el-icon><User /></el-icon>
                <span>User Information</span>
              </el-menu-item>
            </router-link>
            <el-menu-item index="order" v-if="isflag" @click="selectMenuItem('order')">
              <el-icon><Tickets /></el-icon>
              <span>Order Management</span>
            </el-menu-item>
            <el-menu-item index="manage" v-if="userInfo.rolename=='op' ? false : true" @click="selectMenuItem('manage')">
              <el-icon><Reading /></el-icon>
              <span>Task Management</span>
            </el-menu-item>
            <el-menu-item index="task" v-if="isflag" @click="selectMenuItem('task')">
              <el-icon><Calendar /></el-icon>
              <span>Schedule</span>
            </el-menu-item>
          </el-menu>
  data() {
    return {
      active: "/user",
    };
  },
mounted(){
    this.active =  window.sessionStorage.getItem("activerouter");
  },
  methods: {
    selectMenuItem(path) {
      this.active = path
      window.sessionStorage.setItem("activerouter", path);
    },
   } 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文