Skip to content

TRadio / TRadioGroup / 单选框

Radio buttons for selecting one option from a group. Supports independent and group mode (via TRadioGroup), inline layout, and validation. / 单选框用于从一组选项中选择一个值,支持独立模式和组模式(通过 TRadioGroup)、内联布局和验证状态。

TRadio Props

PropType / 类型Default / 默认值Description / 说明
labelstringLabel text / 标签文本
valuestring | number | booleanRadio value
namestringGroup name / 分组名
inlinebooleanfalseInline layout
disabledbooleanfalseDisabled
validation'valid' | 'invalid'Validation state

v-model

v-modelType / 类型Description / 说明
v-modelstring | number | booleanSelected value (standalone) / 选中值

Slots / 插槽

SlotDescription / 说明
defaultCustom label content (overrides label prop) / 自定义标签

Basic Usage / 基础用法

vue
<script setup lang="ts">
import { TRadio, TRadioGroup } from '@gulcc/tabler-vue'

const selected = ref('vue')
const options = [
  { label: 'Vue.js', value: 'vue' },
  { label: 'React', value: 'react' },
  { label: 'Angular', value: 'angular' },
]
</script>

<template>
  <!-- Radio group / 单选框组 -->
  <TRadioGroup v-model="selected">
    <TRadio v-for="opt in options" :key="opt.value" :value="opt.value">
      {{ opt.label }}
    </TRadio>
  </TRadioGroup>
  Selected: {{ selected }}
</template>

Advanced Usage / 进阶场景

vue
<script setup lang="ts">
import { TRadio, TRadioGroup } from '@gulcc/tabler-vue'
</script>

<template>
  <!-- Inline layout / 内联排列 -->
  <TRadioGroup v-model="gender" inline>
    <TRadio value="male" label="Male / 男" />
    <TRadio value="female" label="Female / 女" />
    <TRadio value="other" label="Other / 其他" />
  </TRadioGroup>

  <!-- Disabled options / 禁用选项 -->
  <TRadioGroup v-model="plan">
    <TRadio value="free" label="Free / 免费" />
    <TRadio value="pro" label="Pro / 专业" disabled />
    <TRadio value="enterprise" label="Enterprise / 企业" />
  </TRadioGroup>

  <!-- Validation / 验证 -->
  <TRadioGroup v-model="agree" validation="invalid">
    <TRadio :value="true" label="I agree / 我同意" />
  </TRadioGroup>
</template>

Tips / 避坑指南

  • In group mode, v-model binds to TRadioGroup, not individual TRadio components
  • The selected value matches the value prop of the clicked TRadio
  • disabled on individual TRadio overrides group-level disabled
  • All TRadio in a group share the same name (auto-inherited from TRadioGroup if set)
  • TRadio without a TRadioGroup parent works independently with its own v-model