menuList[{text:**,route:**,activeSign:**}]用法

menuList是一个包含菜单项的数组,每一个菜单项都是一个对象,具有以下属性:

(1)text:菜单的文本内容、

(2)route:点击菜单项时,导航到的路径

(3)activeSign:用于表示当前活动状态的标志

示例代码说明:

const menuList = [ { text: '新建实验',
 route: '/main/testSetting',
 activeSign: 'testSetting'},
 ];

这个 menuList 数组可以用来生成一个菜单,用户点击菜单项时会导航到相应的路径,并且可以通过 activeSign 属性来判断哪个菜单项是当前活动状态。

举栗说明

HTML 和 JavaScript 代码示例

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>菜单示例</title>
    <style>
        .menu-item {
            padding: 10px;
            cursor: pointer;
        }
        .active {
            font-weight: bold;
            color: red;
        }
    </style>
</head>
<body>

<div id="menu"></div>

<script>
    const menuList = [
        { text: '新建测试', route: '/main/testSetting', activeSign: 'testSetting' },
    ];

    const activeRoute = '/main/testSetting'; // 假设当前活动路径为 '/main/testSetting'

    function renderMenu(menuList) {
        const menuDiv = document.getElementById('menu');
        menuList.forEach(menuItem => {
            const itemDiv = document.createElement('div');
            itemDiv.textContent = menuItem.text;
            itemDiv.className = 'menu-item';
            if (menuItem.route === activeRoute) {
                itemDiv.classList.add('active');
            }
            itemDiv.addEventListener('click', () => {
                // 在这里处理导航逻辑,比如:
                console.log(`导航到: ${menuItem.route}`);
                window.location.href = menuItem.route;
            });
            menuDiv.appendChild(itemDiv);
        });
    }

    renderMenu(menuList);
</script>

</body>
</html>

代码解释

  1. HTML 部分:

    • 创建一个 <div> 元素,用于容纳菜单项。
  2. CSS 部分:

    • .menu-item 类为每个菜单项提供基本样式。
    • .active 类用于高亮显示当前活动的菜单项。
  3. JavaScript 部分:

    • 定义 menuList 数组,其中包含一个菜单项对象。
    • 假设当前活动路径为 /main/testSetting
    • renderMenu 函数用来生成菜单,并根据当前活动路径高亮显示对应的菜单项。
    • 为每个菜单项添加点击事件监听器,当用户点击菜单项时,会打印导航路径并导航到相应路径。

通过这种方式,可以根据 menuList 生成动态菜单,并处理用户的点击导航逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值