• Checkbox 复选框
    • 引入
  • 代码演示
    • 基础用法
    • 禁用状态
    • 自定义颜色
    • 自定义图标
    • 复选框组
    • 设置最大可选数
    • 搭配单元格组件使用
  • API
    • Checkbox Props
    • CheckboxGroup Props
    • Checkbox Events
    • CheckboxGroup Events
    • Checkbox Slots
    • Checkbox 方法

    Checkbox 复选框

    引入

    1. import { Checkbox, CheckboxGroup } from 'vant';
    2. Vue.use(Checkbox).use(CheckboxGroup);

    代码演示

    基础用法

    通过v-model绑定 checkbox 的勾选状态

    1. <van-checkbox v-model="checked">复选框</van-checkbox>
    1. export default {
    2. data() {
    3. return {
    4. checked: true
    5. };
    6. }
    7. };

    禁用状态

    1. <van-checkbox v-model="checked" disabled>复选框</van-checkbox>

    自定义颜色

    1. <van-checkbox v-model="checked" checked-color="#07c160">复选框</van-checkbox>

    自定义图标

    通过 icon 插槽自定义图标,可以通过 slot-scope 判断是否为选中状态

    1. <van-checkbox v-model="checked">
    2. 自定义图标
    3. <img
    4. slot="icon"
    5. slot-scope="props"
    6. :src="props.checked ? icon.active : icon.normal"
    7. >
    8. </van-checkbox>
    1. export default {
    2. data() {
    3. checked: true,
    4. icon: {
    5. normal: '//img.yzcdn.cn/icon-normal.png',
    6. active: '//img.yzcdn.cn/icon-active.png'
    7. }
    8. }
    9. }

    复选框组

    van-checkbox-group一起使用,选中值是一个数组,通过v-model绑定在van-checkbox-group上,数组中的项即为选中的Checkboxname属性设置的值

    1. <van-checkbox-group v-model="result">
    2. <van-checkbox
    3. v-for="(item, index) in list"
    4. :key="item"
    5. :name="item"
    6. >
    7. 复选框 {{ item }}
    8. </van-checkbox>
    9. </van-checkbox-group>
    1. export default {
    2. data() {
    3. return {
    4. list: ['a', 'b', 'c'],
    5. result: ['a', 'b']
    6. };
    7. }
    8. };

    设置最大可选数

    1. <van-checkbox-group v-model="result" :max="2">
    2. <van-checkbox
    3. v-for="(item, index) in list"
    4. :key="item"
    5. :name="item"
    6. >
    7. 复选框 {{ item }}
    8. </van-checkbox>
    9. </van-checkbox-group>

    搭配单元格组件使用

    此时你需要再引入CellCellGroup组件,并通过 checkbox 的 toggle 方法手动触发切换

    1. <van-checkbox-group v-model="result">
    2. <van-cell-group>
    3. <van-cell
    4. v-for="(item, index) in list"
    5. clickable
    6. :key="item"
    7. :title="`复选框 ${item}`"
    8. @click="toggle(index)"
    9. >
    10. <van-checkbox :name="item" ref="checkboxes" />
    11. </van-cell>
    12. </van-cell-group>
    13. </van-checkbox-group>
    1. export default {
    2. methods: {
    3. toggle(index) {
    4. this.$refs.checkboxes[index].toggle();
    5. }
    6. }
    7. }

    API

    Checkbox Props

    参数说明类型默认值版本
    name标识符any--
    shape形状,可选值为 squareStringround-
    v-model是否为选中状态Booleanfalse-
    disabled是否禁用复选框Booleanfalse-
    icon-size图标大小,默认单位为pxString | Number20px2.0.0
    label-disabled是否禁用复选框文本点击Booleanfalse-
    label-position文本位置,可选值为 leftStringright1.1.11
    checked-color选中状态颜色String#1989fa1.4.3

    CheckboxGroup Props

    参数说明类型默认值版本
    v-model所有选中项的标识符Array--
    disabled是否禁用所有复选框Booleanfalse-
    max设置最大可选数,0 为无限制Number0-

    Checkbox Events

    事件名说明回调参数
    change当绑定值变化时触发的事件当前组件的值
    click点击复选框时触发event: Event

    CheckboxGroup Events

    事件名说明回调参数
    change当绑定值变化时触发的事件当前组件的值

    Checkbox Slots

    名称说明slot-scope
    default自定义文本-
    icon自定义图标checked: 是否为选中状态

    Checkbox 方法

    通过 ref 可以获取到 checkbox 实例并调用实例方法

    方法名参数返回值介绍
    toggle--切换选中状态

    Checkbox 复选框 - 图1