/*! For license information please see 8853.6a566489.js.LICENSE.txt */ (self.webpackChunk=self.webpackChunk||[]).push([["8853"],{59620:function(s,a,n){"use strict";n.r(a);var t=n("80681");let l=["innerHTML"];a.default={setup:()=>({html:""}),render:()=>((0,t.wg)(),(0,t.iD)("div",{class:"van-doc-markdown-body",innerHTML:'
A group of options for multiple choices.
\nRegister component globally via app.use
, refer to Component Registration for more registration ways.
import { createApp } from 'vue';\nimport { Checkbox, CheckboxGroup } from 'vant';\n\nconst app = createApp();\napp.use(Checkbox);\napp.use(CheckboxGroup);\n
\n<van-checkbox v-model="checked">Checkbox</van-checkbox>\n
\nimport { ref } from 'vue';\n\nexport default {\n setup() {\n const checked = ref(true);\n return {\n checked,\n };\n },\n};\n
\n<van-checkbox v-model="checked" disabled>Checkbox</van-checkbox>\n
\n<van-checkbox-group v-model="checked" shape="square">\n <van-checkbox name="a">\u590D\u9009\u6846 a</van-checkbox>\n <van-checkbox name="b">\u590D\u9009\u6846 b</van-checkbox>\n</van-checkbox-group>\n
\nimport { ref } from 'vue';\n\nexport default {\n setup() {\n const checked = ref(['a', 'b']);\n return { checked };\n },\n};\n
\n<van-checkbox v-model="checked" checked-color="#ee0a24">Checkbox</van-checkbox>\n
\n<van-checkbox v-model="checked" icon-size="24px">Checkbox</van-checkbox>\n
\nUse icon slot to custom icon.
\n<van-checkbox v-model="checked">\n customize icon\n <template #icon="props">\n <img class="img-icon" :src="props.checked ? activeIcon : inactiveIcon" />\n </template>\n</van-checkbox>\n\n<style>\n .img-icon {\n height: 20px;\n }\n</style>\n
\nimport { ref } from 'vue';\n\nexport default {\n setup() {\n const checked = ref(true);\n return {\n checked,\n activeIcon:\n 'https://fastly.jsdelivr.net/npm/@vant/assets/user-active.png',\n inactiveIcon:\n 'https://fastly.jsdelivr.net/npm/@vant/assets/user-inactive.png',\n };\n },\n};\n
\nSet label-position
prop to \'left\'
to adjust the label position to the left of the Checkbox.
<van-checkbox v-model="checked" label-position="left">Checkbox</van-checkbox>\n
\n<van-checkbox v-model="checked" label-disabled>Checkbox</van-checkbox>\n
\nWhen Checkboxes are inside a CheckboxGroup, the checked checkboxes\'s name is an array and bound with CheckboxGroup by v-model.
\n<van-checkbox-group v-model="checked">\n <van-checkbox name="a">Checkbox a</van-checkbox>\n <van-checkbox name="b">Checkbox b</van-checkbox>\n</van-checkbox-group>\n
\nimport { ref } from 'vue';\n\nexport default {\n setup() {\n const checked = ref(['a', 'b']);\n return { checked };\n },\n};\n
\n<van-checkbox-group v-model="checked" direction="horizontal">\n <van-checkbox name="a">Checkbox a</van-checkbox>\n <van-checkbox name="b">Checkbox b</van-checkbox>\n</van-checkbox-group>\n
\nimport { ref } from 'vue';\n\nexport default {\n setup() {\n const checked = ref([]);\n return { checked };\n },\n};\n
\n<van-checkbox-group v-model="checked" :max="2">\n <van-checkbox name="a">Checkbox a</van-checkbox>\n <van-checkbox name="b">Checkbox b</van-checkbox>\n <van-checkbox name="c">Checkbox c</van-checkbox>\n</van-checkbox-group>\n
\n<van-checkbox-group v-model="checked" ref="checkboxGroup">\n <van-checkbox name="a">Checkbox a</van-checkbox>\n <van-checkbox name="b">Checkbox b</van-checkbox>\n <van-checkbox name="c">Checkbox c</van-checkbox>\n</van-checkbox-group>\n\n<van-button type="primary" @click="checkAll">Check All</van-button>\n<van-button type="primary" @click="toggleAll">Toggle All</van-button>\n
\nimport { ref } from 'vue';\n\nexport default {\n setup() {\n const checked = ref([]);\n const checkboxGroup = ref(null);\n\n const checkAll = () => {\n checkboxGroup.value.toggleAll(true);\n }\n const toggleAll = () => {\n checkboxGroup.value.toggleAll();\n },\n\n return {\n checked,\n checkAll,\n toggleAll,\n checkboxGroup,\n };\n },\n};\n
\n<van-checkbox-group v-model="checked">\n <van-cell-group inset>\n <van-cell\n v-for="(item, index) in list"\n clickable\n :key="item"\n :title="`Checkbox ${item}`"\n @click="toggle(index)"\n >\n <template #right-icon>\n <van-checkbox\n :name="item"\n :ref="el => checkboxRefs[index] = el"\n @click.stop\n />\n </template>\n </van-cell>\n </van-cell-group>\n</van-checkbox-group>\n
\nimport { ref, onBeforeUpdate } from 'vue';\n\nexport default {\n setup() {\n const checked = ref([]);\n const checkboxRefs = ref([]);\n const toggle = (index) => {\n checkboxRefs.value[index].toggle();\n };\n\n onBeforeUpdate(() => {\n checkboxRefs.value = [];\n });\n\n return {\n list: ['a', 'b'],\n toggle,\n checked,\n checkboxRefs,\n };\n },\n};\n
\n<van-checkbox\n v-model="isCheckAll"\n :indeterminate="isIndeterminate"\n @change="checkAllChange"\n>\n Check All\n</van-checkbox>\n\n<van-checkbox-group v-model="checkedResult" @change="checkedResultChange">\n <van-checkbox v-for="item in list" :key="item" :name="item">\n Checkbox {{ item }}\n </van-checkbox>\n</van-checkbox-group>\n
\nimport { ref } from 'vue';\n\nexport default {\n setup() {\n const list = ['a', 'b', 'c', 'd']\n\n const isCheckAll = ref(false);\n const checkedResult = ref(['a', 'b', 'd']);\n const isIndeterminate = ref(true);\n\n const checkAllChange = (val: boolean) => {\n checkedResult.value = val ? list : []\n isIndeterminate.value = false\n }\n\n const checkedResultChange = (value: string[]) => {\n const checkedCount = value.length\n isCheckAll.value = checkedCount === list.length\n isIndeterminate.value = checkedCount > 0 && checkedCount < list.length\n }\n\n return {\n list,\n isCheckAll,\n checkedResult,\n checkAllChange,\n isIndeterminate,\n checkedResultChange\n };\n },\n};\n
\nAttribute | \nDescription | \nType | \nDefault | \n
---|---|---|---|
v-model | \nCheck status | \nboolean | \nfalse | \n
name | \nCheckbox name, usually a unique string or number | \nany | \n- | \n
shape | \nCan be set to square | \nstring | \nround | \n
disabled | \nDisable checkbox | \nboolean | \nfalse | \n
label-disabled | \nWhether to disable label click | \nboolean | \nfalse | \n
label-position | \nCan be set to left | \nstring | \nright | \n
icon-size | \nIcon size | \nnumber | string | \n20px | \n
checked-color | \nChecked color | \nstring | \n#1989fa | \n
bind-group | \nWhether to bind with CheckboxGroup | \nboolean | \ntrue | \n
indeterminate | \nWhether indeterminate status | \nboolean | \nfalse | \n
Attribute | \nDescription | \nType | \nDefault | \n
---|---|---|---|
v-model | \nNames of all checked checkboxes | \nany[] | \n- | \n
disabled | \nWhether to disable all checkboxes | \nboolean | \nfalse | \n
max | \nMaximum amount of checked options | \nnumber | string | \n0 (Unlimited) | \n
direction | \nDirection, can be set to horizontal | \nstring | \nvertical | \n
icon-size | \nIcon size of all checkboxes | \nnumber | string | \n20px | \n
checked-color | \nChecked color of all checkboxes | \nstring | \n#1989fa | \n
shape v4.6.3 | \nCan be set to square | \nstring | \nround | \n
Event | \nDescription | \nParameters | \n
---|---|---|
change | \nEmitted when value changed | \nchecked: boolean | \n
click | \nEmitted when the checkbox is clicked | \nevent: MouseEvent | \n
Event | \nDescription | \nParameters | \n
---|---|---|
change | \nEmitted when value changed | \nnames: any[] | \n
Name | \nDescription | \nSlotProps | \n
---|---|---|
default | \nCustom label | \n{ checked: boolean, disabled: boolean } | \n
icon | \nCustom icon | \n{ checked: boolean, disabled: boolean } | \n
Use ref to get CheckboxGroup instance and call instance methods.
\nName | \nDescription | \nAttribute | \nReturn value | \n
---|---|---|---|
toggleAll | \nToggle check status of all checkboxes | \noptions?: boolean | object | \n- | \n
import { ref } from 'vue';\nimport type { CheckboxGroupInstance } from 'vant';\n\nconst checkboxGroupRef = ref<CheckboxGroupInstance>();\n\n// Toggle all\ncheckboxGroup.value?.toggleAll();\n// Select all\ncheckboxGroup.value?.toggleAll(true);\n// Unselect all\ncheckboxGroup.value?.toggleAll(false);\n\n// Toggle all, skip disabled\ncheckboxGroup.value?.toggleAll({\n skipDisabled: true,\n});\n// Select all, skip disabled\ncheckboxGroup.value?.toggleAll({\n checked: true,\n skipDisabled: true,\n});\n
\nUse ref to get Checkbox instance and call instance methods.
\nName | \nDescription | \nAttribute | \nReturn value | \n
---|---|---|---|
toggle | \nToggle check status | \nchecked?: boolean | \n- | \n
The component exports the following type definitions:
\nimport type {\n CheckboxProps,\n CheckboxShape,\n CheckboxInstance,\n CheckboxLabelPosition,\n CheckboxGroupProps,\n CheckboxGroupInstance,\n CheckboxGroupDirection,\n CheckboxGroupToggleAllOptions,\n} from 'vant';\n
\nCheckboxInstance
and CheckboxGroupInstance
is the type of component instance:
import { ref } from 'vue';\nimport type { CheckboxInstance, CheckboxGroupInstance } from 'vant';\n\nconst checkboxRef = ref<CheckboxInstance>();\nconst checkboxGroupRef = ref<CheckboxGroupInstance>();\n\ncheckboxRef.value?.toggle();\ncheckboxGroupRef.value?.toggleAll();\n
\nThe component provides the following CSS variables, which can be used to customize styles. Please refer to ConfigProvider component.
\nName | \nDefault Value | \nDescription | \n
---|---|---|
--van-checkbox-size | \n20px | \n- | \n
--van-checkbox-border-color | \nvar(--van-gray-5) | \n- | \n
--van-checkbox-duration | \nvar(--van-duration-fast) | \n- | \n
--van-checkbox-label-margin | \nvar(--van-padding-xs) | \n- | \n
--van-checkbox-label-color | \nvar(--van-text-color) | \n- | \n
--van-checkbox-checked-icon-color | \nvar(--van-primary-color) | \n- | \n
--van-checkbox-disabled-icon-color | \nvar(--van-gray-5) | \n- | \n
--van-checkbox-disabled-label-color | \nvar(--van-text-color-3) | \n- | \n
--van-checkbox-disabled-background | \nvar(--van-border-color) | \n- | \n