Radio 单选框

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

平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序

基本使用

  • 该组件需要搭配radioGroup组件使用,以便用户进行操作时,获得当前单选框组的选中情况,当然,您也可以单独对某个radio进行事件监听
  • 通过v-modelradioGroup组件绑定一个变量,这个绑定的变量是双向的(初始值只能是true或者false),也就是说,您可以无需监听radio或者radioGroup组件的change事件,也能知道哪个 被勾选了

注意: 由于radio组件需要由radioGroup组件提供参数值,这些父子组件间通过Vue的”provide/inject”特性注入依赖, 所以您必须使用radioGroup包裹radio组件才能正常使用。

  1. <template>
  2. <view class="">
  3. <u-radio-group v-model="value" @change="radioGroupChange">
  4. <u-radio
  5. @change="radioChange"
  6. v-for="(item, index) in list" :key="index"
  7. :name="item.name"
  8. :disabled="item.disabled"
  9. >
  10. {{item.name}}
  11. </u-radio>
  12. </u-radio-group>
  13. </view>
  14. </template>
  15. <script>
  16. export default {
  17. data() {
  18. return {
  19. list: [
  20. {
  21. name: 'apple',
  22. checked: false,
  23. disabled: false
  24. },
  25. {
  26. name: 'banner',
  27. checked: false,
  28. disabled: false
  29. },
  30. {
  31. name: 'orange',
  32. checked: false,
  33. disabled: false
  34. }
  35. ],
  36. value: '',
  37. };
  38. },
  39. methods: {
  40. // 选中某个单选框时,由radio时触发
  41. radioChange(e) {
  42. // console.log(e);
  43. },
  44. // 选中任一radio时,由radio-group触发
  45. radioGroupChange(e) {
  46. // console.log(e);
  47. }
  48. }
  49. };
  50. </script>

禁用radio

设置disabledtrue,即可禁用某个组件,让用户无法点击,禁用分为两种状态,一是未勾选前禁用,这时只显示一个灰色的区域。二是已勾选后 再禁用,会有灰色的勾选的图标,但此时依然是不可操作的。

  1. <u-radio-group v-model="value"
  2. <u-radio :disabled="true">明月几时有</u-radio>
  3. </u-radio-group>

自定义形状

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

  1. <u-radio-group v-model="value">
  2. <u-radio shape="circle">月明人倚楼</u-radio>
  3. </u-radio-group>

自定义颜色

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

  1. <u-radio-group v-model="value">
  2. <u-radio active-color="red">思悠悠,恨悠悠,恨到归时方始休</u-radio>
  3. </u-radio-group>

文本是否可点击

设置label-disabledfalse,点击文本时,无法操作radio

  1. <u-radio-group v-model="value">
  2. <u-radio :label-disabled="false">门掩黄昏,无计留春住</u-radio>
  3. </u-radio-group>

API

Radio Props

注意:需要给radioGroup组件通过v-model绑定一个布尔值,来初始化radio的状态,随后该值被双向绑定, 当用户勾选复选框时,该值在radio内部被修改为true,并反映到父组件,否则为false,换言之,您无需监听radiochange事件,也能 知道某一个radio是否被选中的状态

参数说明类型默认值可选值
icon-size图标大小,单位rpxString \ Number24-
label-sizelabel字体大小,单位rpxString \ Number28-
nameradio组件的标示符String \ Number--
shape形状,见上方说明Stringcirclesquare
disabled是否禁用Booleanfalsetrue
label-disabled点击文本是否可以操作radioBooleantruefalse
active-color选中时的颜色,如设置radioGroupactive-color将失效String--

radioGroup Props

参数说明类型默认值可选值
disabled是否禁用所有radioBooleanfalsetrue
active-color选中时的颜色,应用到所有子Radio组件String#2979ff-
sizeradio组件整体的大小,单位rpxString \ Number40-

radio Event

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

radioGroup Event

事件名说明回调参数版本
change任一个radio状态发生变化时触发name: 值为radio通过props传递的name-