element-ui导航栏刷新保持点击状态

element-ui导航栏刷新保持点击状态功能

最近在做项目的时候,有一个需求是刷新导航栏,可以保持点击选中的状态。

经过我的研究以及搜索,我发现有一个方法

<el-menu
        ref="menu"
        @select="keep"
        router
        width=100%
      :default-active='activepath'
      class="el-menu-vertical-demo"
      background-color="#545c64"
      text-color="#fff"
      active-text-color="#ffd04b"> 
      <el-menu-item index="studio">工作室</el-menu-item>
      <el-menu-item index="studio_members">工作室成员</el-menu-item>
      <el-menu-item index="notice">公告</el-menu-item>
      <el-menu-item index="sign_up">报名</el-menu-item>
      <el-menu-item index="personal">个人信息</el-menu-item>
    </el-menu>

通过ref属性和router,default-active属性来实现,

ref属性是让我们获得对应组件,以便对其进行操作

router属性表示,导航栏的index可以作为路由跳转路径(这个是导航栏跳转的基本)

最主要的就是default-active这个属性,他的意思是默认打开的路由,因为此路由需要改变,所以我们需要给他绑定值,此处是activepath

data(){
      return{
        //导航栏
        activepath:'studio'
      }
      
    },

我们默认打开第一个,这里则是studio

通过查阅官方文档,我们可以发现有一个select事件,这个事件是导航栏被点击就会触发一次

我们选择select事件,表示被选择时触发 keep这个函数

 methods:{
      //导航栏的动态保存
      keep(){
        sessionStorage.setItem('navkeep',this.$refs.menu.activeIndex);
      }
    },

这里需要说明一下,因为我们设置了ref,所以我们可以可以在this里面通过$.refs.menu获得这个左边栏组件,然后里面有一个自带的属性值activeIndex用于保存你所点击的el-menu-item 的index,所以我们可以拿到我们所点的对应的index,通过设置session的方式保存这个值,我们这里保存到了navkeep这个变量里面,

然后还记得我们之前设置的default-active吗,我们在组件创造完成的时候把activepath改成我们对应的

//生命周期函数
    created(){
      if(sessionStorage.getItem('navkeep')){
        this.activepath=sessionStorage.getItem('navkeep');
      }
    }

这样一来刷新则会保存点击状态了

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要解决Element UI导航栏点击的问题,可以按照以下步骤进行排查和修复: 1. 确保已正确安装Element UI并在main.js中引入了Element UI组件库。可以使用npm安装Element UI,并在main.js中使用import语句引入Element UI。 2. 检查导航栏组件的代码,确保正确引入了导航栏组件。可以在Index.vue文件中使用import语句引入导航栏组件,并在components属性中注册导航栏组件。 3. 检查导航栏的样式设置。可以调整导航栏的宽度、高度、默认颜色等样式设置,确保导航栏的样式符合预期。 4. 检查导航栏的数据设置。可以设置导航标题,并在Vue页面中引入数据,使用循环生成导航栏。 5. 检查导航栏点击跳转路由设置。确保导航栏的每个菜单项都设置了正确的路由跳转。 如果以上步骤都没有解决问题,可以参考引用\[3\]中提供的参考链接,查看Element UI导航栏的相关文档和示例,以获取更多帮助和解决方案。 #### 引用[.reference_title] - *1* [Element ui侧边导航栏的使用笔记](https://blog.csdn.net/m0_56262444/article/details/117391813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue2+element-ui创建顶部导航栏及下拉菜单](https://blog.csdn.net/Sebastien23/article/details/125524741)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ElementuiEl-menu导航栏](https://blog.csdn.net/qq_40323256/article/details/125212606)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值