Skip to content

单选按钮

使用方法 ​

Radio 表示一组互斥选项中的单个选项,需要配合 RadioGroup 使用:选中状态由 RadioGroup 通过 provide/inject 统一管理,单个 Radio 只需声明自己的值和标签。最基本的用法如下:

vue
<script setup lang="ts">
import { Radio, RadioGroup } from '@astryx-vue/core/Radio'
import { shallowRef } from 'vue'

const size = shallowRef('md')
</script>

<template>
  <RadioGroup v-model="size" label="Size">
    <Radio value="sm" label="Small" />
    <Radio value="md" label="Medium" />
    <Radio value="lg" label="Large" />
  </RadioGroup>
</template>

示例 ​

基本用法

Size

把 Radio 作为子项放进 RadioGroup,再用 v-model 绑定当前选中的值,选中状态即由组统一管理。

单选列表

Plan

选项结构简单时,可以改用 RadioList 直接传入 options 数组,省去逐个书写 Radio 子项的麻烦。

禁用选项

Disabled option

给单个选项设置 isDisabled 即可将其禁用,组内其他选项不受影响,仍可正常选择。

键盘操作 ​

焦点进入单选组之后,组内的选项沿用浏览器原生单选按钮的键盘行为,无需额外的按键约定:

  • Tab:聚焦单选组,焦点落在当前选中的选项上。整组在 Tab 顺序中只占一个停留点。
  • 方向键:在组内移动当前选中的选项。
  • Space:选中当前聚焦的选项。

使用建议 ​

单选组适合让用户在少量互斥的选项之间做出一次选择。选项变多之后,这种形式就不再合适。

  • 选项数量较少、彼此互斥时,使用单选组让用户一眼看清全部可选项。
  • 选项超过 7 个左右时,改用下拉选择更省空间,也更便于扫读。

无论选项多少,都要提供组标签 label:它是整组单选按钮的无障碍名称,屏幕阅读器依赖它朗读。