表单组件 / Radio单选框组件
注意
使用v-modal切换状态(数据控制), 不支持checked属性, value为纯string字段, 用于唯一标识;
其他
- 组件支持异步操作实例化
- 目前组件的层级嵌套关系如下: List -> Item -> Radio
- 动态设置了单个radio的禁用状态, 如果之前是选中的则取消选中, 手动点击和数据选中都会生效
组件通讯关系
- 初始化时, radio组件自己的this传递给radio-group, recordRadio()
- Radio点击时, 调用List组件的onRadioChange函数, 传递自己的value
- List组件得到value触发input更新v-modal值, 之后遍历子组件Radio, 触发组件的setChecked, 传递value
- 子组件根据传入的value设置自己的状态
如何引入
// 引入
import Radio from 'vimo/lib/radio'
// 安装
Vue.component(Radio.name, Radio)
// 或者
export default{
src: {
Radio
}
}传入属性 / Props:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
mode |
String |
<optional> |
'ios'
|
模式 |
color |
String |
<optional> |
颜色 | |
disabled |
Boolean |
<optional> |
false
|
单向选择, 点击且换并不对父组件传递 |
用法 / Usages
<vm-list radio-group v-model="fruits" :disabled="isListDisabled">
<vm-list-header>Fruits</vm-list-header>
<vm-item>
<vm-label>Apple</vm-label>
<vm-radio value="apple" :disabled="isAppleDisabled" @onSelect="onSelectHandler"></vm-radio>
</vm-item>
<vm-item>
<vm-label>Banana</vm-label>
<vm-radio value="banana" color="danger" @onSelect="onSelectHandler"></vm-radio>
</vm-item>
<vm-item>
<vm-label>Cherry (secondary color)</vm-label>
<vm-radio value="cherry" color="secondary" @onSelect="onSelectHandler"></vm-radio>
</vm-item>
<vm-item>
<vm-label>Disabled</vm-label>
<vm-radio value="disabled" :disabled="true" @onSelect="onSelectHandler"></vm-radio>
</vm-item>
<vm-item>
<vm-label>Default</vm-label>
<vm-radio value="default" @onSelect="onSelectHandler"></vm-radio>
</vm-item>
</vm-list>