C

Menu 导航菜单

导航组件

页面层级导航菜单,支持横向/纵向、子菜单、图标。

何时使用

需要导航菜单功能时使用本组件。

代码示例

基础用法

tsx
import { Menu } from "@/components/ui/menu"

export function Basic() {
return <Menu />
}

变体

tsx
{/* 展示 variant 变体 */}
<div className="flex flex-wrap items-center gap-3">
<Menu variant="default">Default</Menu>
<Menu variant="destructive">Destructive</Menu>
</div>

尺寸

tsx
{/* 尺寸对照 */}
<div className="flex flex-wrap items-center gap-3">
<Menu size="sm">Sm</Menu>
<Menu size="default">Default</Menu>
<Menu size="lg">Lg</Menu>
</div>

样式变体

方向

direction说明默认
vertical
horizontal

尺寸

Size说明默认
default默认尺寸
sm小号
lg大号

active

active说明默认
true
false

变体

Variant说明默认
default默认样式
destructive危险/删除样式

API / Props

Menu

PropTypeDefault说明
classNamestring自定义样式类名
itemsMenuItem[]选项/数据项列表
onSelect() => void选中回调
selectedKeysstring[]
mode"inline" | "popup"inlineMode: "inline" shows children indented, "popup" shows them in a submenu on hover
...restReact.ComponentProps<"div">透传 <div> 原生属性

注意事项

  • Client Component: 使用 "use client",依赖 React hooks/状态,需在客户端渲染。
  • CVA 变体: 通过 class-variance-authority 管理样式变体,类型安全。变体对象可导出复用。
  • 原生属性: 继承所有 <div> 原生 HTML 属性。

📘 完整交互式示例与控件属性请查看 Storybook 文档