Radio 单选框

概述

基本组件-单选框。主要用于一组可选项单项选择,或者单独用于切换到选中状态。

代码示例

Radio 单选框 - 图1

单独使用

使用 v-model 可以双向绑定数据。

  1. <template>
  2. <Radio v-model="single">Radio</Radio>
  3. </template>
  4. <script>
  5. export default {
  6. data () {
  7. return {
  8. single: false
  9. }
  10. }
  11. }
  12. </script>

Radio 单选框 - 图2

组合使用

使用RadioGroup实现一组互斥的选项组。在组合使用时,Radio 使用 label 来自动判断。每个 Radio 的内容可以自定义,如不填写则默认使用 label 的值。

  1. <template>
  2. <RadioGroup v-model="phone">
  3. <Radio label="apple">
  4. <Icon type="logo-apple"></Icon>
  5. <span>Apple</span>
  6. </Radio>
  7. <Radio label="android">
  8. <Icon type="logo-android"></Icon>
  9. <span>Android</span>
  10. </Radio>
  11. <Radio label="windows">
  12. <Icon type="logo-windows"></Icon>
  13. <span>Windows</span>
  14. </Radio>
  15. </RadioGroup>
  16. <RadioGroup v-model="animal">
  17. <Radio label="金斑蝶"></Radio>
  18. <Radio label="爪哇犀牛"></Radio>
  19. <Radio label="印度黑羚"></Radio>
  20. </RadioGroup>
  21. </template>
  22. <script>
  23. export default {
  24. data () {
  25. return {
  26. phone: 'apple',
  27. animal: '爪哇犀牛'
  28. }
  29. }
  30. }
  31. </script>

Radio 单选框 - 图3

不可用

通过设置disabled属性来禁用单选框。

  1. <template>
  2. <Radio v-model="disabledSingle" disabled>Radio</Radio>
  3. <RadioGroup v-model="disabledGroup">
  4. <Radio label="金斑蝶" disabled></Radio>
  5. <Radio label="爪哇犀牛"></Radio>
  6. <Radio label="印度黑羚"></Radio>
  7. </RadioGroup>
  8. </template>
  9. <script>
  10. export default {
  11. data () {
  12. return {
  13. disabledSingle: true,
  14. disabledGroup: '爪哇犀牛'
  15. }
  16. }
  17. }
  18. </script>

Radio 单选框 - 图4

垂直

设置属性 vertical 可以垂直显示,按钮样式下无效。

  1. <template>
  2. <RadioGroup v-model="vertical" vertical>
  3. <Radio label="apple">
  4. <Icon type="social-apple"></Icon>
  5. <span>Apple</span>
  6. </Radio>
  7. <Radio label="android">
  8. <Icon type="social-android"></Icon>
  9. <span>Android</span>
  10. </Radio>
  11. <Radio label="windows">
  12. <Icon type="social-windows"></Icon>
  13. <span>Windows</span>
  14. </Radio>
  15. </RadioGroup>
  16. </template>
  17. <script>
  18. export default {
  19. data () {
  20. return {
  21. vertical: 'apple'
  22. }
  23. }
  24. }
  25. </script>

Radio 单选框 - 图5

按钮样式

组合使用时可以设置属性type为 button 来应用按钮的样式。

  1. <template>
  2. <RadioGroup v-model="button1" type="button">
  3. <Radio label="北京"></Radio>
  4. <Radio label="上海"></Radio>
  5. <Radio label="深圳"></Radio>
  6. <Radio label="杭州"></Radio>
  7. </RadioGroup>
  8. <RadioGroup v-model="button2" type="button">
  9. <Radio label="北京"></Radio>
  10. <Radio label="上海" disabled></Radio>
  11. <Radio label="深圳"></Radio>
  12. <Radio label="杭州"></Radio>
  13. </RadioGroup>
  14. <RadioGroup v-model="button3" type="button">
  15. <Radio label="北京" disabled></Radio>
  16. <Radio label="上海" disabled></Radio>
  17. <Radio label="深圳" disabled></Radio>
  18. <Radio label="杭州" disabled></Radio>
  19. </RadioGroup>
  20. </template>
  21. <script>
  22. export default {
  23. data () {
  24. return {
  25. button1: '北京',
  26. button2: '北京',
  27. button3: '北京'
  28. }
  29. }
  30. }
  31. </script>

Radio 单选框 - 图6

尺寸

通过设置属性sizelargesmall将按钮样式设置为大和小尺寸,不设置为默认(中)尺寸。

  1. <template>
  2. <RadioGroup v-model="button4" type="button" size="large">
  3. <Radio label="北京"></Radio>
  4. <Radio label="上海"></Radio>
  5. <Radio label="深圳"></Radio>
  6. <Radio label="杭州"></Radio>
  7. </RadioGroup>
  8. <RadioGroup v-model="button5" type="button">
  9. <Radio label="北京"></Radio>
  10. <Radio label="上海"></Radio>
  11. <Radio label="深圳"></Radio>
  12. <Radio label="杭州"></Radio>
  13. </RadioGroup>
  14. <RadioGroup v-model="button6" type="button" size="small">
  15. <Radio label="北京"></Radio>
  16. <Radio label="上海"></Radio>
  17. <Radio label="深圳"></Radio>
  18. <Radio label="杭州"></Radio>
  19. </RadioGroup>
  20. </template>
  21. <script>
  22. export default {
  23. data () {
  24. return {
  25. button4: '北京',
  26. button5: '北京',
  27. button6: '北京'
  28. }
  29. }
  30. }
  31. </script>

API

Radio props

属性说明类型默认值
value只在单独使用时有效。可以使用 v-model 双向绑定数据Booleanfalse
label 只在组合使用时有效。指定当前选项的 value 值,组合会自动判断当前选择的项目String | Number-
disabled是否禁用当前项Booleanfalse
size单选框的尺寸,可选值为 largesmalldefault 或者不设置String-
true-value选中时的值,当使用类似 1 和 0 来判断是否选中时会很有用String, Number, Booleantrue
false-value没有选中时的值,当使用类似 1 和 0 来判断是否选中时会很有用String, Number, Booleanfalse

Radio events

事件名说明返回值
on-change在选项状态发生改变时触发,返回当前状态。通过修改外部的数据改变时不会触发

RadioGroup props

属性说明类型默认值
value指定当前选中的项目数据。可以使用 v-model 双向绑定数据String | Number-
type可选值为 button 或不填,为 button 时使用按钮样式String-
size尺寸,可选值为largesmalldefault或者不设置String-
vertical是否垂直排列,按钮样式下无效Booleanfalse

RadioGroup events

事件名说明返回值
on-change在选项状态发生改变时触发,返回当前选中的项。通过修改外部的数据改变时不会触发