Radio 单选
一、概述
定义
用于从一组互斥的选项中选择一项。
使用场景
• 单选,各个选项之间互斥。
• 和 Select 的区别是,Radio 所有选项默认可见,方便用户在比较中选择,因此选项不宜过多。
二、基础样式
一组互斥的单选配合使用。
交互说明
1.每次只能选择一个选项。
2.对于已经选择的单选框,只能选择其他选择才会被取消。
<div>
默认:
<se-radio value="选项">选项</se-radio>
</div>
<br />
<div>
选中:
<se-radio value="选项" checked>选项</se-radio>
</div>
<br />
<div>
禁用:
<se-radio value="a" disabled>选项A</se-radio>
<se-radio value="b" checked disabled>选项B</se-radio>
</div>
二、单选框组
适用于在多个互斥的选项中选择的场景
<se-radio-group :value="fruit" @change="handleChange">
<se-radio v-for="(item, i) in options" :key="i" :value="item.value" :disabled="item.disabled">
{{item.label}}
</se-radio>
</se-radio-group>
<p>Selected: {{ fruit || 'none' }}</p>
<script>
export default {
data() {
return {
fruit: 'b',
options: [
{ label: '选项A', value: 'a', disabled: true },
{ label: '选项B', value: 'b' },
{ label: '选项C', value: 'c' },
{ label: '选项D', value: 'd', disabled: true }
]
}
},
methods: {
handleChange(e) {
this.fruit = e.detail.value
}
}
}
</script>
当然你也可以直接传入一个 options
数组,并在 options 中配置规则 ——
<se-radio-group :options="options" :value="fruit" @change="handleChange"></se-radio-group>
<p>Selected: {{ fruit || 'none' }}</p>
<script>
export default {
data() {
return {
fruit: 'b',
options: [
{ label: '选项A', value: 'a' },
{ label: '选项B', value: 'b' },
{ label: '选项C', value: 'c' },
{ label: '选项D', value: 'd', disabled: true }
]
}
},
methods: {
handleChange(e) {
this.fruit = e.detail.value
}
}
}
</script>
单选框组禁用的效果示例如下 ——
<se-radio-group :options="options" :value="fruit" disabled></se-radio-group>
<p>Selected: {{ fruit || 'none' }}</p>
<script>
export default {
data() {
return {
fruit: 'd',
options: [
{ label: '选项A', value: 'a' },
{ label: '选项B', value: 'b' },
{ label: '选项C', value: 'c' },
{ label: '选项D', value: 'd' }
]
}
}
}
</script>
Radio Props
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
name | string | - | 否 | 字段名 |
disabled | boolean | false | 否 | 是否禁用 |
value | number / string / boolean | - | 否 | 选中项对应的值 |
checked | boolean | false | 否 | 初始化时是否默认选中 |
Radio Events
事件名称 | 描述 | 回调函数参数 |
---|---|---|
change | 类似于原生的 input[type=radio] 元素的 change 事件 | e: Event (detail = { value: 选中的radio的value } ) |
RadioGroup Props
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
name | string | 内部实现 | 否 | 字段名 |
disabled | boolean | - | 否 | 是否禁用 |
value | number / string / boolean | - | 否 | 选中的值 |
options | array<{ label: string value: string disabled?: boolean }> | - | 否 | 以配置形式设置子元素 |
RadioGroup Events
事件名称 | 描述 | 回调函数参数 |
---|---|---|
change | radio-group 中选中项发生改变时触发 | e: Event (detail = { value: 选中的radio的value } ) |