Skip to content

Radio 单选框

单选框用于有一个选择,用户只能选择其中一个的场景。

平台兼容性

App(vue)App(nvue)H5小程序VUE2VUE3

基本使用

该组件需要搭配 radioGroup 组件使用,以便用户进行操作时,获得当前单选框组的选中情况 通过 v-modelradioGroup 组件绑定一个变量,对应的 name 将会被选中

vue
<template>
  <wu-radio-group
    v-model="radiovalue1"
    placement="column"
    @change="groupChange"
  >
    <wu-radio
      :customStyle="{marginBottom: '8px'}"
      v-for="(item, index) in radiolist1"
      :key="index"
      :label="item.name"
      :name="item.name"
      @change="radioChange"
    >
    </wu-radio>
  </wu-radio-group>
</template>

<script>
export default {
	data() {
		return {
          // 基本案列数据
          radiolist1: [
            {
                name: 'JavaScript',
                disabled: false
            },
            {
                name: 'Python',
                disabled: false
            },
            {
                name: 'Java',
                disabled: false
            }, {
                name: 'C++',
                disabled: false
            }
          ],
          // wu-radio-group的v-model绑定的值如果设置为某个radio的name,就会被默认选中
          radiovalue1: 'JavaScript',
		};
	},
	methods: {
      groupChange(n) {
        console.log('groupChange', n);
      },
      radioChange(n) {
        console.log('radioChange', n);
      }
	}
};
</script>
<template>
  <wu-radio-group
    v-model="radiovalue1"
    placement="column"
    @change="groupChange"
  >
    <wu-radio
      :customStyle="{marginBottom: '8px'}"
      v-for="(item, index) in radiolist1"
      :key="index"
      :label="item.name"
      :name="item.name"
      @change="radioChange"
    >
    </wu-radio>
  </wu-radio-group>
</template>

<script>
export default {
	data() {
		return {
          // 基本案列数据
          radiolist1: [
            {
                name: 'JavaScript',
                disabled: false
            },
            {
                name: 'Python',
                disabled: false
            },
            {
                name: 'Java',
                disabled: false
            }, {
                name: 'C++',
                disabled: false
            }
          ],
          // wu-radio-group的v-model绑定的值如果设置为某个radio的name,就会被默认选中
          radiovalue1: 'JavaScript',
		};
	},
	methods: {
      groupChange(n) {
        console.log('groupChange', n);
      },
      radioChange(n) {
        console.log('radioChange', n);
      }
	}
};
</script>

自定义形状

可以通过设置 shapesquare 或者 circle ,将单选框设置为方形或者圆形

html
<wu-radio-group v-model="value">
	<wu-radio shape="circle" label="围棋赌酒到天明"></wu-radio>
</wu-radio-group>
<wu-radio-group v-model="value">
	<wu-radio shape="circle" label="围棋赌酒到天明"></wu-radio>
</wu-radio-group>

禁用radio

设置 disabledtrue ,即可禁用某个组件,让用户无法点击

html
<wu-radio-group v-model="value">
    <wu-radio :disabled="true" label="把酒问青天"></wu-radio>
</wu-radio-group>
<wu-radio-group v-model="value">
    <wu-radio :disabled="true" label="把酒问青天"></wu-radio>
</wu-radio-group>

是否禁止点击提示语选中单选框

设置 labelDisabledtrue ,即可禁止点击提示语选中单选框

html
<wu-radio-group v-model="value">
    <wu-radio :labelDisabled="true" label="把酒问青天"></wu-radio>
</wu-radio-group>
<wu-radio-group v-model="value">
    <wu-radio :labelDisabled="true" label="把酒问青天"></wu-radio>
</wu-radio-group>

自定义颜色

此处所指的颜色,为 radio 选中时的背景颜色,参数为 activeColor

html
<wu-radio-group v-model="value">
	<wu-radio activeColor="red" label="一日不见兮,思之如狂"></wu-radio>
</wu-radio-group>
<wu-radio-group v-model="value">
	<wu-radio activeColor="red" label="一日不见兮,思之如狂"></wu-radio>
</wu-radio-group>

横向排列形式

可以通过设置 placementrow 或者 column ,将单选框设置为横向排列或者竖向排列

html
<wu-radio-group 
    v-model="value"
    placement="row">
	<wu-radio activeColor="red" label="一日不见兮,思之如狂"></wu-radio>
</wu-radio-group>
<wu-radio-group 
    v-model="value"
    placement="row">
	<wu-radio activeColor="red" label="一日不见兮,思之如狂"></wu-radio>
</wu-radio-group>

横向两端排列形式

可以通过设置 iconPlacementleft 或者 right ,将单选框勾选图标的对齐设置为左对齐或者右对齐

html
<wu-radio-group 
    v-model="value"
    iconPlacement="right">
	<wu-radio activeColor="red" label="一日不见兮,思之如狂"></wu-radio>
</wu-radio-group>
<wu-radio-group 
    v-model="value"
    iconPlacement="right">
	<wu-radio activeColor="red" label="一日不见兮,思之如狂"></wu-radio>
</wu-radio-group>

API

Radio Props

注意:radioradio-group 二者同名参数中,radio的参数优先级更高。

属性名说明类型默认值可选值
nameradio的名称String / Number--
shape形状,square为方形,circle为圆型Stringsquaresquare / circle
disabled是否禁用Boolean--
labelDisabled是否禁止点击提示语选中单选框String / Boolean--
activeColor选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值String--
inactiveColor未选中的颜色String--
iconSize图标的大小,单位pxString / Number--
labelSizelabel的字体大小,px单位String / Number--
labellabel提示文字,因为nvue下,直接slot进来的文字,由于特殊的结构,无法修改样式String / Number--
size整体的大小String / Number--
iconColor图标颜色String--
labelColorlabel的颜色String--

RadioGroup Props

属性名说明类型默认值可选值
value / modelValue绑定的值String / Number / Boolean''-
disabled是否禁用全部radioBooleanfalsetrue
shape形状,circle-圆形,square-方形Stringcirclecircle / square
activeColor选中状态下的颜色,如子组件设置此值,将会覆盖本值String#2979ff-
inactiveColor未选中的颜色String#c8c9cc-
name标识符String--
size整个组件的尺寸,默认pxString / Number18-
placement布局方式,row-横向,column-纵向Stringrowcolumn
label文本String--
labelColorlabel的字体颜色String#303133-
labelSizelabel的字体大小,px单位String / Number14-
labelDisabled是否禁止点击文本操作Booleanfalsetrue / false
iconColor图标颜色String#ffffff-
iconSize图标的大小,单位pxString / Number12-
borderBottom竖向配列时,是否显示下划线Booleanfalsetrue / false
iconPlacement勾选图标的对齐方式,left-左边,right-右边Stringleftleft / right

Radio Event

方法名说明回调参数
change某个 radio 状态发生变化时触发(选中状态)name: 通过 props 传递的 name

RadioGroup Event

方法名说明回调参数
change任意一个 radio 状态发生变化时触发name: 值为 radio 通过 props 传递的 name