组件/Radio 单选框

Radio 单选框

在一组互斥选项中选择一项的控件

已验证自 0.3.4

用法

按钮组

默认样式;也可直接拖动指示器选择。

示例加载中...

标准样式

设置 type="standard",用 direction 切换横排与纵排。

示例加载中...

卡片

设置 type="card",标题与说明放进默认插槽。

示例加载中...

指示器

indicatorVariant 决定指示器画法,elastic 开关拉伸动效。

示例加载中...

禁用

示例加载中...

演练场

示例加载中...

最佳实践

  • 同组内每个 value 保持唯一。
  • 短分段选择用 button,长列表用纵向 standard,需要说明文字时用 card。
  • 单个选项不可用时只禁用该项,让它保持可见;整组禁用只用于只读或加载态。
  • glass / blur 指示器保留 updateOnSettled 的默认值,除非校验必须立即触发。

API 参考

TxRadioGroup

属性

属性名类型默认值说明
modelValue / v-modelstring | number-选中项的值。
disabledbooleanfalse禁用整组,包括键盘选择。
type'button' | 'standard' | 'card''button'子项共享的样式。
direction'row' | 'column'-排列方向;button 恒为 row,standard 默认 row,card 默认 column。
indicatorVariant'solid' | 'outline' | 'glass' | 'blur'-按钮组指示器样式;未传时由 glass / blur 推导,否则为 solid。
glassbooleanfalseglass 指示器的简写。
blurbooleanfalseblur 指示器的简写。
updateOnSettledboolean-按钮组等指示器停稳后再派发更新;glass、blur 下默认开启。
stiffnessnumber110指示器弹簧刚度,越大越快停稳。
dampingnumber12指示器弹簧阻尼,越小越弹。
blurAmountnumber1blur 指示器的背景模糊强度。
elasticbooleantrue启用指示器的拉伸与撞击动效。

事件

事件名参数说明
update:modelValue(value: string | number)选中新值时触发。
change(value: string | number)与 update:modelValue 同时触发。

插槽

插槽名参数说明
default-TxRadio 子项。

键盘

按键行为
ArrowRight / ArrowDown选择下一个启用项,末项后回到首项。
ArrowLeft / ArrowUp选择上一个启用项,首项前回到末项。
Home / End选择第一个 / 最后一个启用项。

TxRadio

属性

属性名类型默认值说明
valuestring | number-选中时写入 group 的值。
labelstring''无默认插槽时显示的文本。
disabledbooleanfalse禁用该项,键盘导航跳过它。
type'button' | 'standard' | 'card''button'独立使用时的样式;group 内以 group 的 type 为准。
modelValue / v-modelboolean-独立使用时的选中状态;未传则自行记录,group 内忽略。

事件

事件名参数说明
click(value: string | number)启用且未选中的项经 group 选中自身后触发。
update:modelValue(value: boolean)独立使用时,点击未选中的项后以 true 触发。

插槽

插槽名参数说明
default-标签或卡片内容;为空时显示 label。

概述

  • TxRadioGroup 持有选中值,向子项注入样式与禁用状态,并处理键盘导航。
  • 组内点击已选中的项不派发任何事件。
  • 按钮组的指示器可横向拖动,松手后吸附并选中最近的启用项;整组禁用时忽略拖动。

技术实现

  • updateOnSettled 生效时,新值先在组内生效,指示器停稳后再派发 update:modelValue 与 change。
  • 源码:packages/tuffex/packages/components/src/radio/。
查看源码
packages/tuffex/packages/components/src/radio/index.ts