美文网首页Web前端之路程序员Vue
element-ui el-menu 匹配不到路由时会选中in

element-ui el-menu 匹配不到路由时会选中in

作者: 嘻哈章鱼小丸子 | 来源:发表于2020-12-09 18:03 被阅读0次
前言

项目中首页和具体的菜单页分开展示,头部和尾部共用一个。首页展示如下:


index

代码:

const menus = [... {
        name: '2',
        url: '/info',
        children: [{
                name: '系统',
                url: '/system'
            },
            {
                name: '厂商',
                url: '/firm'
            }
        ]
    }...]

 <el-menu
            class="header-menu"
            mode="horizontal"
            active-text-color="#419eff"
            :default-active="$route.path"
            @select="handleSelect"
        >
            <template v-for="(item, index) in menus">
                <el-submenu
                    v-if="item.children"
                    popper-class="header-submenu"
                    :key="item.name"
                    :index="item.url"
                >
                    <template slot="title">{{ item.name }}</template>
                    <el-menu-item
                        v-for="childMenu in item.children"
                        :key="childMenu.name"
                        :index="childMenu.url "
                    >
                        {{ childMenu.name }}
                    </el-menu-item>
                </el-submenu>
                <el-menu-item v-else :key="item.name" :index="item.url">
                    {{ item.name }}
                </el-menu-item>
            </template>
        </el-menu>
需求

菜单2下面的系统和厂商要求点击不跳转

实现

把对应的url注释掉

结果

点击的时候不会选中菜单,页面不跳转。但是访问其他子页面后,通过浏览器回退按钮退回到index页面时,莫名就选中了2菜单栏,包括下面2个子菜单。如下图:

error
想了下应该是子菜单没有设置唯一标志index。而且/index这个路由在menus中也找不到,所以就默认匹配index===null的路由了?于是给el-menu-item加上index,果然好了。
总结

el-menu el-menu-item 一定要设置唯一index

相关文章

  • element-ui el-menu 匹配不到路由时会选中in

    前言 项目中首页和具体的菜单页分开展示,头部和尾部共用一个。首页展示如下: 代码: 需求 菜单2下面的系统和厂商要...

  • 使用element-ui容易出错的地方

    1、使用导航菜单时,需要在el-menu中加入router属性才可以开启路由。代码如下:

  • ElementUI el-menu导航中,开启vue-route

    借助路由守卫进行判断 给el-menu绑定切换事件,给出提示

  • element-ui 菜单组件的路由模式

    1. 基础使用 获取路由对象,放入数据集 el-menu标签上添加 router 属性,遍历路由对象,el-men...

  • Learnnext-6 :Server Side Support

    因为是服务端找不到hello-nextjs那个页面,匹配路由失败,所以我们就要手动去将路由匹配到正确的页面上去。首...

  • koa的中间件

    中间件就是匹配路由(匹配任何路由或者特定的路由,其作用比如打印日志,查看权限)之前或者匹配路由完成之后所得一系列操...

  • koa的中间件

    中间件就是匹配路由(匹配任何路由或者特定的路由,其作用比如打印日志,查看权限)之前或者匹配路由完成之后所得一系列操...

  • koa的中间件

    中间件就是匹配路由(匹配任何路由或者特定的路由,其作用比如打印日志,查看权限)之前或者匹配路由完成之后所得一系列操...

  • Vue-router路由嵌套地址改变不跳转记录

    干了一个很蠢的事,在使用ElementUI中的el-menu组件时,需要读取路由并跳转,发现嵌套路由不加载组件的问...

  • angular6.x--路由

    >创建路由 >动态路由 >默认跳转路由 **>routerLinkActive设置routerLink默认选中路由...

网友评论

    本文标题:element-ui el-menu 匹配不到路由时会选中in

    本文链接:https://www.haomeiwen.com/subject/vwwhgktx.html