111k

Dropdown Menu

通过按钮触发,向用户显示一个菜单,例如一组操作或功能。

import { Button } from "@/components/ui/button"
import {
  DropdownMenu,

安装

pnpm dlx shadcn@latest add dropdown-menu

用法

import { Button } from "@/components/ui/button"
import {
  DropdownMenu,
  DropdownMenuContent,
  DropdownMenuGroup,
  DropdownMenuItem,
  DropdownMenuLabel,
  DropdownMenuSeparator,
  DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu"
<DropdownMenu>
  <DropdownMenuTrigger asChild>
    <Button variant="outline">Open</Button>
  </DropdownMenuTrigger>
  <DropdownMenuContent>
    <DropdownMenuGroup>
      <DropdownMenuLabel>My Account</DropdownMenuLabel>
      <DropdownMenuItem>Profile</DropdownMenuItem>
      <DropdownMenuItem>Billing</DropdownMenuItem>
    </DropdownMenuGroup>
    <DropdownMenuSeparator />
    <DropdownMenuGroup>
      <DropdownMenuItem>Team</DropdownMenuItem>
      <DropdownMenuItem>Subscription</DropdownMenuItem>
    </DropdownMenuGroup>
  </DropdownMenuContent>
</DropdownMenu>

示例

基础

一个带有标签和分隔符的基础下拉菜单。

import { Button } from "@/components/ui/button"
import {
  DropdownMenu,

子菜单

使用 DropdownMenuSub 可以嵌套次级操作。

import { Button } from "@/components/ui/button"
import {
  DropdownMenu,

快捷键

添加 DropdownMenuShortcut 可以显示键盘提示。

import { Button } from "@/components/ui/button"
import {
  DropdownMenu,

图标

将图标与标签结合,便于快速浏览。

import { Button } from "@/components/ui/button"
import {
  DropdownMenu,

复选项

使用 DropdownMenuCheckboxItem 可实现切换项。

"use client"

import * as React from "react"

带图标的复选项

为复选项添加图标。

"use client"

import * as React from "react"

单选组

使用 DropdownMenuRadioGroup 可创建互斥选项。

"use client"

import * as React from "react"

带图标的单选项

显示带图标的单选项。

"use client"

import * as React from "react"

危险操作

使用 variant="destructive" 适用于不可逆操作。

import { Button } from "@/components/ui/button"
import {
  DropdownMenu,

头像

一个由头像触发的账户切换下拉菜单。

import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { Button } from "@/components/ui/button"
import {

复杂示例

一个结合分组、图标和子菜单的更丰富示例。

"use client"

import * as React from "react"

RTL

要在 shadcn/ui 中启用 RTL 支持,请参见 RTL 配置指南

"use client"

import * as React from "react"

API 参考

请参见 Radix UI 文档 获取完整 API 参考。