vant 的checkbox 实现单选
时间: 2023-07-07 07:18:28 浏览: 356
vue使用vant中的checkbox实现全选功能
vant 的 Checkbox 组件本身是支持多选的,如果需要实现单选,可以通过以下几种方式:
1. 使用 Radio 组件替代 Checkbox 组件,Radio 组件本身就是单选的。
2. 使用 Checkbox 组件,但在点击选中时,手动判断当前选中的是否已经有其他选项被选中,如果有则取消之前选中的选项。可以通过 `v-model` 绑定一个数组来实现选中状态的管理。示例代码如下:
```html
<template>
<div>
<van-checkbox v-model="checkedList" :label="1" @change="handleChange(1)">选项1</van-checkbox>
<van-checkbox v-model="checkedList" :label="2" @change="handleChange(2)">选项2</van-checkbox>
<van-checkbox v-model="checkedList" :label="3" @change="handleChange(3)">选项3</van-checkbox>
</div>
</template>
<script>
export default {
data() {
return {
checkedList: []
};
},
methods: {
handleChange(val) {
if (this.checkedList.length > 1) {
this.checkedList = [val];
}
}
}
};
</script>
```
3. 直接在业务逻辑中实现单选的限制,即在选中一个选项时,取消其他选项的选中状态。可以通过 `v-model` 绑定一个变量来实现选中状态的管理。示例代码如下:
```html
<template>
<div>
<van-checkbox v-model="selected" :label="1">选项1</van-checkbox>
<van-checkbox v-model="selected" :label="2">选项2</van-checkbox>
<van-checkbox v-model="selected" :label="3">选项3</van-checkbox>
</div>
</template>
<script>
export default {
data() {
return {
selected: null
};
}
};
</script>
```
以上三种方式都可以实现单选,具体使用哪种方式,可以根据实际业务需求来选择。
阅读全文