使用react 开发一个左侧三级菜单

2023-4-14    前端达人

以下是一个使用React开发的左侧三级菜单的基本示例:


import React, { useState } from 'react';

const Menu = () => {
  const [menuItems, setMenuItems] = useState([
    {
      id: 1,
      name: 'Menu Item 1',
      subMenuItems: [
        { id: 1, name: 'Sub-menu Item 1' },
        { id: 2, name: 'Sub-menu Item 2' }
      ]
    },
    {
      id: 2,
      name: 'Menu Item 2',
      subMenuItems: [
        { id: 3, name: 'Sub-menu Item 3' },
        { id: 4, name: 'Sub-menu Item 4' }
      ]
    }
  ]);

  const [selectedMenuItem, setSelectedMenuItem] = useState(null);
  const [selectedSubMenu, setSelectedSubMenu] = useState(null);

  const handleMenuItemClick = (menuItem) => {
    setSelectedMenuItem(menuItem.id);
    setSelectedSubMenu(null);
  };

  const handleSubMenuClick = (subMenuItem) => {
    setSelectedSubMenu(subMenuItem.id);
  };

  return (
    <div className="menu">
      {menuItems.map((menuItem) => (
        <div key={menuItem.id}>
          <button onClick={() => handleMenuItemClick(menuItem)}>
            {menuItem.name}
          </button>
          {selectedMenuItem === menuItem.id && (
            <ul>
              {menuItem.subMenuItems.map((subMenuItem) => (
                <li key={subMenuItem.id}>
                  <button onClick={() => handleSubMenuClick(subMenuItem)}>
                    {subMenuItem.name}
                  </button>
                  {selectedSubMenu === subMenuItem.id && (
                    <ul>
                      <li>Sub-menu item details</li>
                    </ul>
                  )}
                </li>
              ))}
            </ul>
          )}
        </div>
      ))}
    </div>
  );
};

export default Menu;







蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请加微信ban_lanlan,报下信息,蓝小助会请您入群。欢迎您加入噢~~

希望得到建议咨询、商务合作,也请与我们联系01063334945。 



分享此文一切功德,皆悉回向给文章原作者及众读者. 免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。 



蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务UI设计公司、界面设计公司、UI设计服务公司、数据可视化设计公司、UI交互设计公司、高端网站设计公司、UI咨询、用户体验公司、软件界面设计公司

分享本文至:

日历

链接

个人资料

蓝蓝 http://www.lanlanwork.com

存档