Radio 单选框

单选框

何时使用

用于在多个备选项中选中单个状态。和 Select 的区别是:Radio 所有选项默认可见,方便用户在比较中选择,因此选项不宜过多。

代码演示

radio

radio组合使用(不建议单个使用,单个请用checkbox)

  1. <template>
  2. <v-radio v-model="radio" label="first" disabled>fist</v-radio>
  3. <v-radio v-model="radio" label="second">second</v-radio>
  4. <v-radio v-model="radio" label="third">third</v-radio>
  5. <br>
  6. <br>
  7. <span>选择的值为:{{radio}}</span>
  8. </template>
  9. <script>
  10. export default {
  11. data: function () {
  12. return {
  13. radio : 'third'
  14. }
  15. }
  16. }
  17. </script>

RadioGroup组合

一组互斥的 Radio 配合使用。在组合使用时,根据传入的v-model的值自动判断

  1. <template>
  2. <v-radio-group @change="change" v-model="radioValue">
  3. <v-radio label="apple" disabled><v-icon type="apple"></v-icon><span>Apple</span></v-radio>
  4. <v-radio label="android" ><v-icon type="android"></v-icon><span>Android</span></v-radio>
  5. <v-radio label="rocket"><v-icon type="rocket"></v-icon><span>Rocket</span></v-radio>
  6. </v-radio-group>
  7. <br>
  8. <br>
  9. <span>选中的值为:{{radioValue}}</span>
  10. <br>
  11. <br>
  12. <v-button name="test" @click="changeRadioValue">设置raido的值</v-button>
  13. </template>
  14. <script>
  15. export default {
  16. data:{
  17. return {
  18. radioValue: 'apple',
  19. }
  20. },
  21. methods: {
  22. change(selectValue) {
  23. console.log('radio checked:' + selectValue)
  24. },
  25. changeRadioValue(){
  26. this.radioValue = 'android'
  27. }
  28. }
  29. }
  30. </script>

data 属性

data 属性来初始化(注:当互斥的 Radio组合radioGroup使用时, data 属性 将无效)

  1. <template>
  2. <v-radio-group @change="change" v-model="radioValue1" :data="[{value: 'a', text: 'A'},{value: 'b', text: 'B'},{value: 'c', text: 'C'},{value: 'd', text: 'D'}]">
  3. </v-radio-group>
  4. <br>
  5. <br>
  6. <span>选中的值为:{{radioValue1}}</span>
  7. <br>
  8. <br>
  9. <v-button name="test" @click="changeRadioValue1">设置raido的值</v-button>
  10. </template>
  11. <script>
  12. export default {
  13. data:{
  14. return {
  15. radioValue1: 'a',
  16. }
  17. },
  18. methods: {
  19. change(selectValue) {
  20. console.log('radio checked:' + selectValue)
  21. },
  22. changeRadioValue1(){
  23. this.radioValue1 = 'b'
  24. }
  25. }
  26. }
  27. </script>

按钮样式和大小

组合使用时可以设置属性type为 button 来应用按钮的样式 设置size属性来设置大小尺寸

  1. <template>
  2. <v-radio-group type="button" size="small" v-model="bRadio1"
  3. :data="[{value: 'shanghai', text: 'shanghai'},{value: 'beijing', text: 'beijing',disabled:true},{value: 'chengdu', text: 'chengdu'},{value: 'tianjin', text: 'tianji'}]">
  4. </v-radio-group>
  5. <br>
  6. <br>
  7. <v-radio-group type="button" v-model="bRadio2"
  8. :data="[{value: 'shanghai', text: 'shanghai'},{value: 'beijing', text: 'beijing',disabled:true},{value: 'chengdu', text: 'chengdu'},{value: 'tianjin', text: 'tianji'}]">
  9. </v-radio-group>
  10. <br>
  11. <br>
  12. <v-radio-group type="button" size="large" v-model="bRadio3" disabled
  13. :data="[{value: 'shanghai', text: 'shanghai'},{value: 'beijing', text: 'beijing',disabled:true},{value: 'chengdu', text: 'chengdu'},{value: 'tianjin', text: 'tianji'}]">
  14. </v-radio-group>
  15. </template>
  16. <script>
  17. export default {
  18. data:{
  19. return {
  20. bRadio1: 'shanghai',
  21. bRadio2: 'shanghai',
  22. bRadio3: 'shanghai',
  23. }
  24. }
  25. }
  26. </script>

API

radio Props

参数说明类型默认值
labelradio的valueString,Number-
disabled是否禁用Booleanfalse

radioGroup Props

参数说明类型默认值
size组件中点的大小,可选值为 small default largestringdefault
typeradio 展示方式,可选buttonstring-
data用于渲染多个radio项Array-
disabled是否禁用Booleanfalse

data

参数说明类型默认值
valueradio项的value值String,Number-
textradio项展示值String-
disabledradio项是否可用Booleanfalse

radioGroup event

参数说明参数
change选择的值发生变化的时候触发value