Menu 菜单组件 #
基本用法 #
jsx
import {
Menu,
MenuButton,
MenuList,
MenuItem,
Button,
} from '@chakra-ui/react'
import { ChevronDownIcon } from '@chakra-ui/icons'
function Example() {
return (
<Menu>
<MenuButton as={Button} rightIcon={<ChevronDownIcon />}>
操作
</MenuButton>
<MenuList>
<MenuItem>下载</MenuItem>
<MenuItem>复制</MenuItem>
<MenuItem>标记</MenuItem>
<MenuItem>删除</MenuItem>
</MenuList>
</Menu>
)
}
菜单分组 #
jsx
import { MenuGroup, MenuDivider } from '@chakra-ui/react'
<Menu>
<MenuButton as={Button}>文件</MenuButton>
<MenuList>
<MenuGroup title="文件操作">
<MenuItem>新建</MenuItem>
<MenuItem>打开</MenuItem>
<MenuItem>保存</MenuItem>
</MenuGroup>
<MenuDivider />
<MenuGroup title="导出">
<MenuItem>导出为 PDF</MenuItem>
<MenuItem>导出为 Word</MenuItem>
</MenuGroup>
</MenuList>
</Menu>
菜单图标 #
jsx
import { Icon } from '@chakra-ui/react'
import { FiEdit, FiCopy, FiTrash, FiShare } from 'react-icons/fi'
<Menu>
<MenuButton as={Button}>操作</MenuButton>
<MenuList>
<MenuItem icon={<Icon as={FiEdit} />}>编辑</MenuItem>
<MenuItem icon={<Icon as={FiCopy} />}>复制</MenuItem>
<MenuItem icon={<Icon as={FiShare} />}>分享</MenuItem>
<MenuItem icon={<Icon as={FiTrash} />} color="red.500">删除</MenuItem>
</MenuList>
</Menu>
菜单快捷键 #
jsx
<Menu>
<MenuButton as={Button}>编辑</MenuButton>
<MenuList>
<MenuItem command="⌘N">新建</MenuItem>
<MenuItem command="⌘O">打开</MenuItem>
<MenuItem command="⌘S">保存</MenuItem>
</MenuList>
</Menu>
禁用菜单项 #
jsx
<Menu>
<MenuButton as={Button}>操作</MenuButton>
<MenuList>
<MenuItem>可用项</MenuItem>
<MenuItem isDisabled>禁用项</MenuItem>
</MenuList>
</Menu>
实用示例 #
用户菜单 #
jsx
function UserMenu({ user }) {
return (
<Menu>
<MenuButton>
<HStack>
<Avatar src={user.avatar} size="sm" />
<Text>{user.name}</Text>
<ChevronDownIcon />
</HStack>
</MenuButton>
<MenuList>
<MenuItem>个人资料</MenuItem>
<MenuItem>设置</MenuItem>
<MenuDivider />
<MenuItem color="red.500">退出登录</MenuItem>
</MenuList>
</Menu>
)
}
Menu 属性速查表 #
| 属性 | 说明 | 值 |
|---|---|---|
| isLazy | 懒加载 | boolean |
| gutter | 间距 | 尺寸值 |
| placement | 位置 | bottom, top, left, right… |
下一步 #
现在你已经掌握了 Menu 组件,接下来学习 Tabs 标签页,了解如何使用标签页切换组件!
最后更新:2026-03-28