Skip to content

Radio 单选框

Radio 用于在一组互斥选项中进行单选。VISTA B 直接使用 Element Plus 的 el-radioel-radio-groupel-radio-button,适合数量较少、选项需要直接展示的表单场景。

基础用法

单选框不适合承载过多选项;如果可选项很多,应该使用 Select。通过 v-model 绑定变量,选中项会把对应 Radio 的 value 写入绑定值,value 可以是 stringnumberboolean

vue
<script setup>
import { ref } from 'vue'

const radio = ref('1')
</script>

<template>
  <el-radio-group v-model="radio">
    <el-radio value="1">Option 1</el-radio>
    <el-radio value="2">Option 2</el-radio>
  </el-radio-group>
</template>

禁用状态

设置 disabled 后,单选框不可选。可以禁用单个 Radio,也可以在 RadioGroup 上统一禁用整组。

vue
<el-radio v-model="radio" disabled value="disabled">Option A</el-radio>
<el-radio v-model="radio" disabled value="selected and disabled">
  Option B
</el-radio>

单选框组

使用 el-radio-group 包裹多个 el-radio 可以实现单选组。通过 change 事件可以响应选中值变化。

未变更
vue
<script setup>
import { ref } from 'vue'

const radio = ref(3)
</script>

<template>
  <el-radio-group v-model="radio">
    <el-radio :value="3">Option A</el-radio>
    <el-radio :value="6">Option B</el-radio>
    <el-radio :value="9">Option C</el-radio>
  </el-radio-group>
</template>

带有边框

设置 border 可以渲染带边框的单选框。边框样式常用于表单中需要更强点击区域和更明确分组的场景。

vue
<el-radio-group v-model="radio">
  <el-radio value="1" border>Option A</el-radio>
  <el-radio value="2" border>Option B</el-radio>
</el-radio-group>

Options 属性

el-radio-group 支持通过 options 快速渲染选项。数据字段名可以通过 props 自定义。

vue
<script setup>
import { ref } from 'vue'

const radio = ref(3)
const props = { value: 'id', label: 'name', disabled: 'unable' }
const options = [
  { id: 3, name: 'Option A' },
  { id: 6, name: 'Option B' },
  { id: 9, name: 'Option C', unable: true }
]
</script>

<template>
  <el-radio-group v-model="radio" :options="options" :props="props" />
</template>

单选按钮

el-radio 换成 el-radio-button 后,可以得到按钮组视觉效果。按钮式单选常用于模式切换、视图切换、周期切换等高频选择。

vue
<el-radio-group v-model="radio" size="large" fill="#13aec5">
  <el-radio-button value="New York">New York</el-radio-button>
  <el-radio-button value="Washington">Washington</el-radio-button>
  <el-radio-button value="Los Angeles">Los Angeles</el-radio-button>
</el-radio-group>

API

Radio 属性

属性说明类型默认值
model-value / v-model选中项绑定值string / number / boolean
value单选框的值string / number / boolean
label单选框的展示标签;如果没有 value,会作为值使用,此用法已废弃string / number / boolean
disabled是否禁用单选框booleanfalse
border是否显示边框booleanfalse
size单选框尺寸large / default / small
name原生 name 属性string

Radio 事件

事件名说明类型
change绑定值变化时触发(value: string | number | boolean) => void

Radio 插槽

插槽说明
default自定义默认内容

RadioGroup 属性

属性说明类型默认值
model-value / v-model绑定值string / number / boolean
sizeRadioButton 或带边框 Radio 的尺寸large / default / smalldefault
disabled是否禁用整组booleanfalse
validate-event输入时是否触发表单校验booleantrue
text-color按钮形式的 Radio 激活时的文本颜色string#ffffff
fill按钮形式的 Radio 激活时的填充色和边框色string#409eff
aria-labelRadioGroup 的无障碍标签string
name原生 name 属性string
id原生 id 属性string
labelaria-label 相同,已废弃string
options选项数据源array
propsoptions 的字段配置object{ value: 'value', label: 'label', disabled: 'disabled' }
type使用 options 渲染时的组件类型radio / buttonradio

RadioGroup 事件

事件名说明类型
change绑定值变化时触发(value: string | number | boolean) => void

RadioGroup 插槽

插槽说明子标签
default自定义默认内容Radio / RadioButton

RadioButton 属性

属性说明类型默认值
value单选按钮的值string / number / boolean
label单选按钮的展示标签;如果没有 value,会作为值使用,此用法已废弃string / number / boolean
disabled是否禁用单选按钮booleanfalse
name原生 name 属性string

RadioButton 插槽

插槽说明
default默认插槽内容

使用提醒

Element Plus 2.6.0 起推荐使用 value 作为 Radio 的真实值,label 作为值的旧用法已废弃并会在 3.0.0 移除。单选项数量过多时,优先使用 Select,避免横向铺开影响表单扫描效率。

HOMEVISTA 设计规范