Skip to content

Selection ​

以单选或多项选择形态使用的菜单

实例 ​

Radio 单选模式 ​

单选按钮组允许用户从互斥的选项列表中选择一个选项

选项切换事件响应数据

事件响应数据日志
template
<SelectMenuBody>
  <SelectMenuHeader>Radio group</SelectMenuHeader>
  <SelectMenuRadioGroup>
    <SelectMenuRadioItem
      value="radio1"
      disabled
    >radio1</SelectMenuRadioItem>
    <SelectMenuRadioItem value="radio2">radio2</SelectMenuRadioItem>
    <SelectMenuRadioItem value="radio3">radio3</SelectMenuRadioItem>
  </SelectMenuRadioGroup>
</SelectMenuBody>
ts
import {
  SelectMenuDropdown,
  SelectMenuTrigger,
  SelectMenuBody,
  SelectMenuHeader,
  SelectMenuRadioGroup,
  SelectMenuRadioItem
} from 'v-selectmenu'

Checkbox 多选模式 ​

CheckboxGroup 允许用户从选项列表中选择一个或多个项目

选项切换事件响应数据

事件响应数据日志
template
<SelectMenuBody>
  <SelectMenuHeader>Checkbox group</SelectMenuHeader>
  <SelectMenuCheckboxGroup>
    <SelectMenuCheckboxItem
      value="checkbox1"
    >checkbox1</SelectMenuCheckboxItem>
    <SelectMenuCheckboxItem
      value="checkbox2"
      disabled
    >checkbox2</SelectMenuCheckboxItem>
    <SelectMenuCheckboxItem
      value="checkbox3"
    >checkbox3</SelectMenuCheckboxItem>
  </SelectMenuCheckboxGroup>
</SelectMenuBody>
ts
import {
  SelectMenuDropdown,
  SelectMenuTrigger,
  SelectMenuBody,
  SelectMenuHeader,
  SelectMenuCheckboxGroup,
  SelectMenuCheckboxItem
} from 'v-selectmenu'

设置默认选中项 ​

设置指定的选项默认选中

template
<!-- radio group with default value -->
<SelectMenuRadioGroup v-model="radioGroupActive">
...
</SelectMenuRadioGroup>

<!-- checkbox group with default value -->
<SelectMenuCheckboxGroup v-model="checkboxGroupActive">
...
</SelectMenuCheckboxGroup>
ts
import { ref } from 'vue'

const radioGroupActive = ref('radio2')
const checkboxGroupActive = ref(['checkbox1', 'checkbox3'])

Radio group

Checkbox group

清除选中项 ​

清除已选中的选项

ts
// clear radio group selection
radioGroupActive.value = ''
// clear checkbox group selection
checkboxGroupActive.value = []

选择后关闭菜单 ​

选项在选择后,立即关闭菜单

template
<SelectMenuRadioGroup :hideOnSelection="hideOnSelection">
...
</SelectMenuRadioGroup>

<SelectMenuCheckboxGroup :hideOnSelection="hideOnSelection">
...
</SelectMenuCheckboxGroup>
ts
import { ref } from 'vue'

const hideOnSelection = ref(false)

Radio group

Checkbox group

Props ​

Group props ​

SelectMenuRadioGroup, SelectMenuCheckboxGroup 的 props

ts
type SelectionValue = string | number

interface RadioGroupProps {
  modelValue?: SelectionValue
  /**
   * @default true
   */
  hideOnSelection?: boolean
}

interface CheckboxGroupProps {
  modelValue?: SelectionValue[]
  /**
   * @default false
   */
  hideOnSelection?: boolean
}

Item props ​

SelectMenuRadioItem, SelectMenuCheckboxItem 的 props

ts
interface SelectionItemProps {
  value: SelectionValue
  /**
   * @default false
   */
  disabled?: boolean
}

事件 ​

SelectMenuRadioGroup, SelectMenuCheckboxGroup 的响应事件

update:modelValue ​

响应选择项变化

ts
// radio group
`update:modelValue`: (value: SelectionValue) => void

// checkbox group
`update:modelValue`: (value: SelectionValue[]) => void

change ​

响应选择项变化

ts
// radio group
change: (data: SelectionValue) => void

// checkbox group
change: (data: SelectionValue[]) => void

插槽 ​

Group slots ​

SelectMenuRadioGroup, SelectMenuCheckboxGroup 的插槽

  • default 默认插槽

Item slots ​

SelectMenuRadioItem, SelectMenuCheckboxItem 的插槽

  • prepend 前置插槽
  • default 默认插槽
  • append 尾部插槽,向右对齐

Released under the MIT License.