Radio 单选框

引入

通过以下方式来全局注册组件,更多注册方式请参考组件注册

基础用法

通过 绑定值当前选中项的 name。

  1. <van-radio-group v-model="checked">
  2. <van-radio name="1">单选框 1</van-radio>
  3. <van-radio name="2">单选框 2</van-radio>
  4. </van-radio-group>
  1. import { ref } from 'vue';
  2. export default {
  3. setup() {
  4. const checked = ref('1');
  5. return { checked };
  6. },
  7. };

水平排列

direction 属性设置为 horizontal 后,单选框组会变成水平排列。

  1. <van-radio-group v-model="checked" direction="horizontal">
  2. <van-radio name="1">单选框 1</van-radio>
  3. <van-radio name="2">单选框 2</van-radio>
  4. </van-radio-group>

禁用状态

自定义形状

shape 属性设置为 square,单选框的形状会变成方形。

  1. <van-radio-group v-model="checked">
  2. <van-radio name="1" shape="square">单选框 1</van-radio>
  3. <van-radio name="2" shape="square">单选框 2</van-radio>
  4. </van-radio-group>

通过 checked-color 属性设置选中状态的图标颜色。

  1. <van-radio name="1" checked-color="#ee0a24">单选框 1</van-radio>
  2. <van-radio name="2" checked-color="#ee0a24">单选框 2</van-radio>
  3. </van-radio-group>

自定义大小

通过 icon-size 属性可以自定义图标的大小。

  1. <van-radio-group v-model="checked">
  2. <van-radio name="1" icon-size="24px">单选框 1</van-radio>
  3. <van-radio name="2" icon-size="24px">单选框 2</van-radio>
  4. </van-radio-group>

自定义图标

  1. import { ref } from 'vue';
  2. export default {
  3. setup() {
  4. return {
  5. checked,
  6. activeIcon: 'https://cdn.jsdelivr.net/npm/@vant/assets/user-active.png',
  7. inactiveIcon:
  8. 'https://cdn.jsdelivr.net/npm/@vant/assets/user-inactive.png',
  9. };
  10. },
  11. };

禁用文本点击

设置 label-disabled 属性后,点击图标以外的内容不会触发单选框切换。

  1. <van-radio-group v-model="checked">
  2. <van-radio name="1" label-disabled>单选框 1</van-radio>
  3. <van-radio name="2" label-disabled>单选框 2</van-radio>
  4. </van-radio-group>

搭配单元格组件使用

搭配单元格组件使用时,需要再引入 和 CellGroup 组件。

  1. <van-radio-group v-model="checked">
  2. <van-cell-group inset>
  3. <van-cell title="单选框 1" clickable @click="checked = '1'">
  4. <template #right-icon>
  5. <van-radio name="1" />
  6. </template>
  7. </van-cell>
  8. <van-cell title="单选框 2" clickable @click="checked = '2'">
  9. <template #right-icon>
  10. <van-radio name="2" />
  11. </template>
  12. </van-cell>
  13. </van-cell-group>
  14. </van-radio-group>

Radio Props

参数说明类型默认值
v-model当前选中项的标识符any-
disabled是否禁用所有单选框booleanfalse
direction排列方向,可选值为 horizontalstringvertical
icon-size所有单选框的图标大小,默认单位为 pxnumber | string
checked-color所有单选框的选中状态颜色string#1989fa

Radio Events

RadioGroup Events

事件名说明回调参数
change当绑定值变化时触发的事件name: string

Radio Slots

类型定义

组件导出以下类型定义:

样式变量

名称默认值描述
—van-radio-size20px-
—van-radio-border-colorvar(—van-gray-5)-
—van-radio-transition-durationvar(—van-animation-duration-fast)-
—van-radio-label-marginvar(—van-padding-xs)-
—van-radio-label-colorvar(—van-text-color)-
—van-radio-checked-icon-colorvar(—van-primary-color)-
—van-radio-disabled-icon-colorvar(—van-gray-5)-
—van-radio-disabled-label-colorvar(—van-text-color-3)-
—van-radio-disabled-background-colorvar(—van-border-color)-