mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
* search component add new style * update vue version and support ssr * unit test * add new icon * new icon
4.6 KiB
4.6 KiB
Checkbox 复选框
使用指南
如果你已经按照快速上手中引入了整个vant
,以下组件注册就可以忽略了,因为你已经全局注册了vant
中的全部组件。
全局注册
你可以在全局注册Checkbox
组件,比如页面的主文件(index.js
,main.js
),这样页面任何地方都可以直接使用Checkbox
组件了:
import Vue from 'vue';
import { Checkbox, CheckboxGroup } from 'vant';
import 'vant/lib/vant-css/checkbox.css';
Vue.component(Checkbox.name, Checkbox);
Vue.component(CheckboxGroup.name, CheckboxGroup);
局部注册
如果你只是想在某个组件中使用,你可以在对应组件中注册Checkbox
组件,这样只能在你注册的组件中使用Checkbox
:
import { Checkbox, CheckboxGroup } from 'vant';
import 'vant/lib/vant-css/checkbox.css';
export default {
components: {
'van-checkbox': Checkbox,
'van-checkbox-group': CheckboxGroup
}
};
代码演示
基础用法
通过v-model
绑定值即可。当Checkbox
选中时,绑定的值即为true
,否则为false
。当单个Checkbox
使用时,更建议使用Switch
组件。
:::demo 基础用法
<div class="van-checkbox-wrapper">
<van-checkbox v-model="checkbox1">复选框1</van-checkbox>
</div>
<script>
export default {
data() {
return {
checkbox1: true
};
}
};
</script>
:::
禁用状态
设置disabled
属性即可,此时Checkbox
不能点击。
:::demo 禁用状态
<div class="van-checkbox-wrapper">
<van-checkbox v-model="checkbox2" disabled>复选框2</van-checkbox>
</div>
<script>
export default {
data() {
return {
checkbox2: true
};
}
};
</script>
:::
Checkbox组
需要与van-checkbox-group
一起使用,值通过v-model
绑定在van-checkbox-group
上,例如下面的result
,此时result
的值是一个数组。数组中的项即为选中的Checkbox
的name
属性设置的值。
:::demo Checkbox组
<div class="van-checkbox-wrapper">
<van-checkbox-group v-model="result">
<van-checkbox v-for="(item, index) in list" :key="index" :name="item">复选框{{item}}</van-checkbox>
</van-checkbox-group>
</div>
<script>
export default {
data() {
return {
list: [
'a',
'b',
'c'
],
result: ['a', 'b']
};
},
watch: {
result(val) {
console.log(val);
}
}
};
</script>
:::
禁用Checkbox组
禁用van-checkbox-group
,此时整个组都不可点击。
:::demo 禁用Checkbox组
<div class="van-checkbox-wrapper">
<van-checkbox-group v-model="result" disabled>
<van-checkbox v-for="(item, index) in list" :key="index" :name="item">复选框{{item}}</van-checkbox>
</van-checkbox-group>
</div>
<script>
export default {
data() {
return {
list: [
'a',
'b',
'c'
],
result: ['a', 'b']
};
}
};
</script>
:::
与Cell组件一起使用
此时你需要再引入Cell
和CellGroup
组件。
:::demo 与Cell组件一起使用
<van-checkbox-group v-model="result">
<van-cell-group>
<van-cell v-for="(item, index) in list" :key="index">
<van-checkbox :name="item">复选框{{item}}</van-checkbox>
</van-cell>
</van-cell-group>
</van-checkbox-group>
<script>
export default {
data() {
return {
list: [
'a',
'b',
'c'
],
result: ['a', 'b']
};
}
};
</script>
:::
Checkbox API
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
disabled | 是否禁用单选框 | boolean |
false |
|
name | 根据这个来判断radio是否选中 | boolean |
false |
CheckboxGroup API
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
disabled | 是否禁用单选框 | boolean |
false |
CheckboxGroup Event
事件名称 | 说明 | 回调参数 |
---|---|---|
change | 当绑定值变化时触发的事件 | 当前组件的值 |