Radio 单选框
示例
尺寸
可供选用的 ui
属性值:s
/ m
。
<template>
<article>
<section>
<veui-radio
v-model="size"
class="radio"
value="m"
:ui="size"
name="size"
>
Normal size
</veui-radio>
<veui-radio
v-model="size"
class="radio"
value="s"
:ui="size"
name="size"
>
Small size
</veui-radio>
</section>
</article>
</template>
<script>
import { Radio } from 'veui'
export default {
components: {
'veui-radio': Radio
},
data () {
return {
size: 'm'
}
}
}
</script>
<style lang="less" scoped>
.radio {
margin-right: 20px;
}
section {
margin-bottom: 20px;
}
</style>
值设定
可以通过设置 value
属性来修改选中状态下 v-model
的值。
Selected: -
<template>
<article>
<veui-radio
v-for="({ value, label }) in flavors"
:key="value"
v-model="flavor"
class="radio"
:value="value"
>
{{ label }}
</veui-radio>
<p>Selected: {{ flavorLabelMap[flavor] || '-' }}</p>
</article>
</template>
<script>
import { Radio } from 'veui'
export default {
components: {
'veui-radio': Radio
},
data () {
return {
flavor: null,
flavors: [
{ value: 'LATTE', label: 'Latte' },
{ value: 'MOCHA', label: 'Mocha' },
{ value: 'AMERICANO', label: 'Americano' }
]
}
},
computed: {
flavorLabelMap () {
return this.flavors.reduce((map, { value, label }) => {
map[value] = label
return map
}, {})
}
}
}
</script>
<style lang="less" scoped>
.radio {
margin-right: 20px;
}
</style>
API
属性
名称 | 类型 | 默认值 | 描述 | ||||||
---|---|---|---|---|---|---|---|---|---|
ui | string | - | 预设样式。
| ||||||
checked | boolean | false |
是否处于选中状态。 | ||||||
value | * | true | 选中状态对应的值。 | ||||||
disabled | boolean | false | 是否为禁用状态。 | ||||||
readonly | boolean | false | 是否为只读状态。 |
插槽
名称 | 描述 |
---|---|
default | 单选框的描述文本,点击时会进行选中。无默认内容。 |
事件
名称 | 描述 |
---|---|
change | 用户切换选中状态时触发,回调参数为 (checked: boolean) 。checked 表示当前是否选中。 |
input |
选中状态变化后触发,回调参数为 |
此外,Radio
支持如下的原生事件:
auxclick
、click
、contextmenu
、dblclick
、mousedown
、mouseenter
、mouseleave
、mousemove
、mouseover
、mouseout
、mouseup
、select
、wheel
、keydown
、keypress
、keyup
、focus
、blur
、focusin
、focusout
。
回调参数均为相应的原生事件对象。