elementUI 动态设置激活的导航

浏览器刷新后希望能选中与当前路由对应的导航, 我现在的做法是将地址栏截取下来,然后设置,defaultActive,但是这样感觉不太好, 还有没有别的方法可以向router-link那样可以刷新仍然选中, ele的文档中没有看到有响应的用法

阅读 5.4k
2 个回答

确实需要设置 defaultActive,不过你可以借助 this.$route.path 这个属性来计算 defaultActive,会比拦截地址栏,然后处理 url 匹配方便不少。

假设我们的路由长下面这样:

const routes = [
  { path: '/a', name: '组件 A', component: ComponentA },
  { path: '/b', name: '组件 B', component: ComponentB }
]

然后路由可以根据上面的数组 v-for 出来:

<template>
    <el-menu :default-active="activeMenuIndex" router>
        <el-menu-item 
            v-for="route in routes"
            :key="route.path"
            :index="route.path"
            :route="route">
            {{ route.name }}
        </el-menu-item>
    </el-menu>
</template>

<script>
export default {
    computed: {
        activeMenuIndex () {
            return this.$route.path
        }
    }
}
</script>

1楼回答正确

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题