Skip to content

Select

基于 reka-ui 的 Select 原语构建的新粗野主义风格下拉选择框,完整支持子组件。

预览

安装

pnpm dlx brutx@latest add select

用法

vue
<script setup>
import {
    Select,
    SelectTrigger,
    SelectContent,
    SelectItem,
    SelectValue,
    SelectGroup,
    SelectLabel,
} from '@/components/ui'
</script>

<template>
    <Select>
        <SelectTrigger class="w-[280px]">
            <SelectValue placeholder="Select a fruit" />
        </SelectTrigger>
        <SelectContent>
            <SelectGroup>
                <SelectLabel>Fruits</SelectLabel>
                <SelectItem value="apple">Apple</SelectItem>
                <SelectItem value="banana">Banana</SelectItem>
                <SelectItem value="orange">Orange</SelectItem>
                <SelectItem value="grape">Grape</SelectItem>
            </SelectGroup>
        </SelectContent>
    </Select>
</template>

使用 v-model

vue
<script setup>
import { ref } from 'vue'
import {
    Select,
    SelectTrigger,
    SelectContent,
    SelectItem,
    SelectValue,
} from '@/components/ui'

const selectedFruit = ref('')
</script>

<template>
    <Select v-model="selectedFruit">
        <SelectTrigger class="w-[280px]">
            <SelectValue placeholder="Select a fruit" />
        </SelectTrigger>
        <SelectContent>
            <SelectItem value="apple">Apple</SelectItem>
            <SelectItem value="banana">Banana</SelectItem>
            <SelectItem value="orange">Orange</SelectItem>
        </SelectContent>
    </Select>
</template>

子组件

组件说明
Select根组件(从 reka-ui 重新导出为 SelectRoot
SelectTrigger打开下拉菜单的按钮
SelectContent下拉内容面板
SelectItem可选项
SelectValue显示已选中的值
SelectGroup选项分组
SelectLabel分组标签
SelectSeparator视觉分隔线
SelectScrollUpButton向上滚动指示器
SelectScrollDownButton向下滚动指示器

属性

SelectTrigger

属性类型默认值
classstring

SelectContent

属性类型默认值
classstring
position'popper' | 'item-aligned'

SelectItem

属性类型默认值
valuestring—(必填)
disabledboolean
classstring

SelectLabel

属性类型默认值
classstring