单选框 Radio
单选框。主要用于一组可选项单项选择,或者单独用于切换到选中状态。
基础用法
<template>
<b-radio v-model="single">Radio</b-radio>
<span style="color: #ff4511">{{ single }}</span>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const single = ref(false)
</script>
<template>
<b-radio v-model="single">Radio</b-radio>
<span style="color: #ff4511">{{ single }}</span>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const single = ref(false)
</script>
组合使用
苹果
<template>
<div>
<b-radio-group v-model="social">
<b-radio label="twitter">
<span>Twitter</span>
</b-radio>
<b-radio label="facebook">
<span>Facebook</span>
</b-radio>
<b-radio label="github">
<span>Github</span>
</b-radio>
<b-radio label="snapchat">
<span>Snapchat</span>
</b-radio>
</b-radio-group>
<p style="color: #ff4511; margin: 5px 0">{{ social }}</p>
<b-radio-group v-model="fruit">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<p style="color: #ff4511; margin: 5px 0">{{ fruit }}</p>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const social = ref('facebook')
const fruit = ref('苹果')
</script>
<template>
<div>
<b-radio-group v-model="social">
<b-radio label="twitter">
<span>Twitter</span>
</b-radio>
<b-radio label="facebook">
<span>Facebook</span>
</b-radio>
<b-radio label="github">
<span>Github</span>
</b-radio>
<b-radio label="snapchat">
<span>Snapchat</span>
</b-radio>
</b-radio-group>
<p style="color: #ff4511; margin: 5px 0">{{ social }}</p>
<b-radio-group v-model="fruit">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<p style="color: #ff4511; margin: 5px 0">{{ fruit }}</p>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const social = ref('facebook')
const fruit = ref('苹果')
</script>
禁用状态
设置 disabled
可以禁用单选组或者某个单选值
<template>
<div>
<b-radio v-model="disabledSingle" disabled>Checkbox</b-radio>
<b-radio-group v-model="disabledGroup">
<b-radio label="香蕉" disabled></b-radio>
<b-radio label="苹果" disabled></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const disabledSingle = ref(true)
const disabledGroup = ref('苹果')
</script>
<template>
<div>
<b-radio v-model="disabledSingle" disabled>Checkbox</b-radio>
<b-radio-group v-model="disabledGroup">
<b-radio label="香蕉" disabled></b-radio>
<b-radio label="苹果" disabled></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const disabledSingle = ref(true)
const disabledGroup = ref('苹果')
</script>
按钮类型
设置 type="button"
可以设置单选框为按钮类型
<template>
<div flex>
<div>
<b-radio-group v-model="fruit" type="button">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<div class="p10" />
<b-radio-group v-model="fruit" type="button" size="small">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<div class="p10" />
<b-radio-group v-model="fruit" type="button" size="mini">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
</div>
<div style="margin-left: 24px">
<b-radio-group v-model="fruit" type="button">
<b-radio label="香蕉" disabled></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<br />
<b-radio-group v-model="fruit" type="button" disabled>
<b-radio label="香蕉" disabled></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
</div>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const fruit = ref('苹果')
</script>
<template>
<div flex>
<div>
<b-radio-group v-model="fruit" type="button">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<div class="p10" />
<b-radio-group v-model="fruit" type="button" size="small">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<div class="p10" />
<b-radio-group v-model="fruit" type="button" size="mini">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
</div>
<div style="margin-left: 24px">
<b-radio-group v-model="fruit" type="button">
<b-radio label="香蕉" disabled></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<br />
<b-radio-group v-model="fruit" type="button" disabled>
<b-radio label="香蕉" disabled></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
</div>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const fruit = ref('苹果')
</script>
胶囊类型
设置 type="capsule"
可以设置单选框为胶囊类型
<template>
<div flex>
<div>
<b-radio-group v-model="fruit" type="capsule">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="桃子"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<div class="p10" />
<b-radio-group v-model="fruit" type="capsule" size="small">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="桃子"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<div class="p10" />
<b-radio-group v-model="fruit" type="capsule" size="mini">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="桃子"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
</div>
<div style="margin-left: 24px">
<b-radio-group v-model="fruit" type="capsule">
<b-radio label="香蕉" disabled></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="桃子"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<div class="p10" />
<b-radio-group v-model="fruit" type="capsule" disabled>
<b-radio label="香蕉" disabled></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="桃子"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
</div>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const fruit = ref('苹果')
</script>
<template>
<div flex>
<div>
<b-radio-group v-model="fruit" type="capsule">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="桃子"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<div class="p10" />
<b-radio-group v-model="fruit" type="capsule" size="small">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="桃子"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<div class="p10" />
<b-radio-group v-model="fruit" type="capsule" size="mini">
<b-radio label="香蕉"></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="桃子"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
</div>
<div style="margin-left: 24px">
<b-radio-group v-model="fruit" type="capsule">
<b-radio label="香蕉" disabled></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="桃子"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
<div class="p10" />
<b-radio-group v-model="fruit" type="capsule" disabled>
<b-radio label="香蕉" disabled></b-radio>
<b-radio label="苹果"></b-radio>
<b-radio label="桃子"></b-radio>
<b-radio label="西瓜"></b-radio>
</b-radio-group>
</div>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const fruit = ref('苹果')
</script>
Props
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
value | 只在单独使用时有效。可以使用 v-model 双向绑定数据 | Boolean | — | false |
label | 组合使用时有效。指定当前选项的 value 值,组合会自动判断是否选中 | String/Number/Boolean | — | — |
disabled | 是否禁用当前项 | Boolean | — | false |
Radio events
事件名 | 说明 | 返回值 |
---|---|---|
change | 在选项状态发生改变时触发,返回当前状态。通过修改外部的数据改变时不会触发 | ... |
RadioGroup props
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
value | 指定选中项目的集合,可以使用 v-model 双向绑定数据 | String/ Number | — | '' |
disabled | 是否禁用所有选项 | Boolean | — | false |
type | 是否开启button模式 | String | button /capsule | — |
size | 按钮模式单选组的尺寸 | String | large、small、default | — |
RadioGroup events
事件名 | 说明 | 返回值 |
---|---|---|
change | 在选项状态发生改变时触发,返回已选中的数组。通过修改外部的数据改变时不会触发 | ... |