Skip to content

Radio 单选框

YhRadioYhRadioGroupYhRadioButton 用于在一组选项中进行单选,支持独立使用、分组使用、options 列表渲染、按钮样式以及主题变量覆盖。

在一组选项中选择唯一值。

基础用法

标准单选场景下使用 YhRadioGroup 包裹多个 YhRadio

基础用法

禁用状态

既可以禁用整组,也可以禁用某一项。

整组禁用:

单项禁用:

禁用状态

独立使用

YhRadio 也可以脱离分组独立使用,直接绑定 v-model

独立使用

边框样式

设置 border 后会渲染带边框的单选框样式。

边框样式

不同尺寸

size 同时支持单项设置和分组继承。

不同尺寸
分组继承尺寸

使用 options 渲染

当不需要自定义插槽内容时,可以直接通过 optionsYhRadioGroup 渲染选项。

使用 options 渲染

按钮样式

使用 YhRadioButton 可以渲染分段按钮式单选。

按钮样式

按钮颜色

按钮样式下,filltext-color 会控制选中态的背景色与文字色。

按钮颜色

按钮禁用与尺寸

按钮禁用
按钮尺寸

在 Nuxt 中使用

安装 @yh-ui/nuxt 后,可以在 Nuxt 3/4 中直接使用 YhRadioYhRadioGroupYhRadioButton。选中态在 SSR 下可以正常输出,并在激活后继续保持同步。

在 Nuxt 中使用

API

Radio Props

属性说明类型默认值
model-value / v-model独立模式下的绑定值YhRadioValueTypeundefined
value当前单选项的值。实际变更时会直接发出 value;如果省略它,虽然选中判断会回退到 label,但变更事件仍可能发出 undefinedYhRadioValueTypeundefined
name原生 name 属性stringundefined
label未使用默认插槽时的回退文本stringundefined
size单选框尺寸'large' | 'default' | 'small'undefined
disabled是否禁用booleanfalse
border是否显示边框样式booleanfalse
id原生 id 属性stringundefined
tabindex原生 tabindex 属性string | numberundefined
theme-overrides组件主题覆盖变量ComponentThemeVarsundefined

Radio Events

事件说明参数
update:modelValue独立模式下绑定值变化时触发(value: YhRadioValueType) => void
change独立模式下绑定值变化时触发(value: YhRadioValueType) => void

Radio Slots

插槽说明参数
default单选框标签内容-

Radio Expose

名称说明类型
ref原生 radio 输入框引用HTMLInputElement | undefined
focus聚焦输入框() => void
blur让输入框失焦() => void

RadioButton Props

属性说明类型默认值
model-value / v-model独立模式下的绑定值YhRadioValueTypeundefined
value当前按钮项的值;未传时选中判断和变更值都会回退到 labelYhRadioValueTypeundefined
name原生 name 属性stringundefined
label未使用默认插槽时的回退文本stringundefined
size按钮尺寸'large' | 'default' | 'small'undefined
disabled是否禁用booleanfalse
id原生 id 属性stringundefined
tabindex原生 tabindex 属性string | numberundefined
theme-overrides组件主题覆盖变量ComponentThemeVarsundefined

RadioButton Events

事件说明参数
update:modelValue独立模式下绑定值变化时触发(value: YhRadioValueType) => void
change独立模式下绑定值变化时触发(value: YhRadioValueType) => void

RadioButton Slots

插槽说明参数
default按钮标签内容-

RadioButton Expose

名称说明类型
ref原生 radio 输入框引用HTMLInputElement | undefined
focus聚焦输入框() => void
blur让输入框失焦() => void

RadioGroup Props

属性说明类型默认值
model-value / v-model绑定值YhRadioValueTypeundefined
options通过配置直接渲染的选项列表YhRadioGroupOption[]undefined
size分组尺寸,会传递给子项'large' | 'default' | 'small'undefined
disabled是否禁用整个分组booleanfalse
name传递给子项的原生 name 属性stringundefined
validate-event分组值变化时是否触发表单校验booleantrue
text-color按钮样式下的选中文字颜色stringundefined
fill按钮样式下的选中背景色和边框色stringundefined
tag外层包装标签或组件string | Component'div'
theme-overrides组件主题覆盖变量ComponentThemeVarsundefined

RadioGroup Events

事件说明参数
update:modelValue分组值变化时触发(value: YhRadioValueType) => void
change分组值变化时触发(value: YhRadioValueType) => void

RadioGroup Slots

插槽说明参数
default自定义分组内容-

当默认插槽为空且传入了 options 时,组件会按 options 自动渲染 YhRadio 项。

RadioGroup Expose

当前组件未暴露公开实例方法或属性。

类型导出

类型说明
YhRadioPropsRadio Props 类型
YhRadioEmitsRadio Emits 类型
YhRadioSlotsRadio Slots 类型
YhRadioExposeRadio Expose 类型
YhRadioGroupPropsRadioGroup Props 类型
YhRadioGroupEmitsRadioGroup Emits 类型
YhRadioGroupOptionRadioGroup 选项项类型
YhRadioButtonPropsRadioButton Props 类型
YhRadioButtonEmitsRadioButton Emits 类型
YhRadioButtonExposeRadioButton Expose 类型
YhRadioValueType共享值类型
YhRadioInstanceRadio 实例类型
YhRadioGroupInstanceRadioGroup 实例类型
YhRadioButtonInstanceRadioButton 实例类型

主题变量

YhRadioYhRadioGroupYhRadioButton 支持 themeOverrides。其中 YhRadioGroup.themeOverrides 会通过注入被子级单选框继承。

Radio 相关专属 CSS 变量:

变量说明默认值
--yh-radio-size单选控件尺寸14px
--yh-radio-input-border单选边框颜色var(--yh-border-color)
--yh-radio-checked-bg-color选中背景色var(--yh-color-primary)
--yh-radio-checked-border-color选中边框色var(--yh-color-primary)
--yh-radio-checked-icon-color选中图标颜色令牌var(--yh-color-primary)
--yh-radio-text-color标签文本颜色var(--yh-text-color-regular)

RadioButton 相关专属 CSS 变量:

变量说明默认值
--yh-radio-button-font-size按钮字体大小var(--yh-font-size-base)
--yh-radio-button-text-color按钮文本颜色var(--yh-text-color-regular)
--yh-radio-button-bg-color按钮背景色var(--yh-fill-color-blank)
--yh-radio-button-border-color按钮边框色var(--yh-border-color)
--yh-radio-button-hover-text-color悬停文字颜色var(--yh-color-primary)
--yh-radio-button-checked-bg-color选中背景色var(--yh-color-primary)
--yh-radio-button-checked-border-color选中边框色var(--yh-color-primary)
--yh-radio-button-checked-text-color选中文字颜色#ffffff
--yh-radio-button-disabled-bg-color禁用背景色var(--yh-fill-color-light)
--yh-radio-button-disabled-border-color禁用边框色var(--yh-border-color-light)
--yh-radio-button-disabled-text-color禁用文字颜色var(--yh-text-color-placeholder)

Released under the MIT License.