Skip to content

Checkbox 复选框

用于切换选中、未选中或不确定状态。

命令行安装

bash
npx @loongship-kit/ui add checkbox

受控状态

Checked: false
查看代码
vue
<script setup lang="ts">
import { ref } from 'vue'
import { Checkbox } from '@/components/loongship/checkbox'

const checked = ref(false)
</script>

<template>
  <label>
    <Checkbox v-model="checked" />
    Accept terms
  </label>
</template>

不确定状态

查看代码
vue
<script setup lang="ts">
import { ref } from 'vue'
import { Button } from '@/components/loongship/button'
import { Checkbox } from '@/components/loongship/checkbox'

const selection = ref<boolean | 'indeterminate'>('indeterminate')
</script>

<template>
  <div class="vp-demo-showcase-column">
    <label class="vp-demo-label-row">
      <Checkbox v-model="selection" />
      Select all vessels
    </label>
    <Button
      size="sm"
      variant="outline"
      @click="selection = selection === 'indeterminate' ? true : 'indeterminate'"
    >
      Toggle state
    </Button>
  </div>
</template>

禁用状态

查看代码
vue
<template>
  <div class="vp-demo-showcase-column">
    <label class="vp-demo-label-row"><Checkbox disabled /> Disabled</label>
  </div>
</template>

API

属性

属性类型默认值说明
v-modelT | 'indeterminate' | null-当前状态
defaultValueT | 'indeterminate'false非受控模式的初始状态
trueValueTtrue选中时写入的值
falseValueTfalse未选中时写入的值
disabledbooleanfalse是否禁用
valueAcceptableValue'on'表单提交值
namestring-表单字段名
requiredbooleanfalse是否必填
idstring自动生成元素 id
asstring | Component'button'渲染元素
asChildbooleanfalse合并到唯一子元素
classClassValue-自定义类名

事件

事件参数说明
update:modelValuevalue: T | 'indeterminate'状态改变时触发

插槽

无内容插槽;选中和不确定图标由组件自动渲染。