elementUI-demo3-navMenu导航菜单

往期demo:(elementUI 的八个常用组件)

测试代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>导航菜单测试</title>
    <!-- 引入ElementUI样式 -->
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <!-- 引入ElementUI组件库 -->
    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
</head>
<body>
    <div id="app">
        <el-menu>
            <el-submenu index="1">
                <template slot="title">
                    <i class="el-icon-location"></i>
                    <span slot="title">导航一</span>
                </template>
                <el-menu-item>选项1</el-menu-item>
                <el-menu-item>选项2</el-menu-item>
                <el-menu-item>选项3</el-menu-item>
            </el-submenu>
            <el-submenu index="2">
                <template slot="title">
                    <i class="el-icon-menu"></i>
                    <span slot="title">导航二</span>
                </template>
                <el-menu-item>选项1</el-menu-item>
                <el-menu-item>选项2</el-menu-item>
                <el-menu-item>选项3</el-menu-item>
            </el-submenu>
        </el-menu>

    </div>

    <script>
        new Vue({
            el:'#app'
        })
    </script>
</body>
</html>

运行结果:
在这里插入图片描述

Element UI中的NavMenu导航菜单组件默认情况下是单选的,也就是说一次只能选中一个菜单项。如果你需要实现多个菜单项同时选中的功能,你将需要进行一些自定义的处理。 以下是实现Element UINavMenu导航菜单多选的一个方法: 1. 使用`el-menu`组件并设置`unique-opened`属性为`false`。这个属性默认为`true`,表示子菜单在点击后会关闭其他已打开的子菜单,设置为`false`后可以使得多个子菜单保持打开状态。 2. 利用`el-menu-item`的`index`属性。这个属性可以用来标识每个菜单项,可以用来跟踪每个菜单项的选中状态。 3. 使用`v-model`双向绑定数据模型到菜单选中项。由于`el-menu`组件本身不支持多选,你需要自己维护一个选中项数组,当菜单项被点击时,根据当前的选中状态决定是添加还是移除该菜单项的`index`。 下面是一个简单的示例代码: ```vue <template> <el-menu :default-active="defaultActive" class="el-menu-vertical-demo" :unique-opened="false" @select="handleSelect"> <el-menu-item index="1"> <i class="el-icon-location"></i> <span slot="title">导航一</span> </el-menu-item> <el-menu-item index="2"> <i class="el-icon-menu"></i> <span slot="title">导航二</span> </el-menu-item> <el-menu-item index="3"> <i class="el-icon-document"></i> <span slot="title">导航三</span> </el-menu-item> </el-menu> </template> <script> export default { data() { return { defaultActive: '1', // 默认选中项 selectedMenus: [] // 存储选中项的index }; }, methods: { handleSelect(key, keyPath) { const menuIndex = keyPath[0]; // 获取被选中的菜单项index const index = this.selectedMenus.indexOf(menuIndex); // 如果已经选中,则移除,否则添加 if (index > -1) { this.selectedMenus.splice(index, 1); } else { this.selectedMenus.push(menuIndex); } } } }; </script> ``` 在这段代码中,我们设置了一个名为`selectedMenus`的数组来跟踪当前选中的菜单项。每当菜单项被选中时,`handleSelect`方法会被触发,根据当前的选中状态,将菜单项的`index`添加到数组中或从数组中移除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值