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-group v-model="checked">
  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:
  7. 'https://fastly.jsdelivr.net/npm/@vant/assets/user-active.png',
  8. inactiveIcon:
  9. 'https://fastly.jsdelivr.net/npm/@vant/assets/user-inactive.png',
  10. };
  11. },
  12. };

禁用文本点击

设置 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>

搭配单元格组件使用

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

  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>

Radio Props

参数说明类型默认值
v-model当前选中项的标识符any-
disabled是否禁用所有单选框booleanfalse
direction排列方向,可选值为 horizontalstringvertical
icon-size所有单选框的图标大小,默认单位为 pxnumber | string20px
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-durationvar(—van-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-backgroundvar(—van-border-color)-