简洁的复选框组件,支持双向绑定和标签内容插槽。
<script setup lang="ts">
const checked = ref(false)
</script>
<template>
<FmCheckbox v-model="checked">同意协议</FmCheckbox>
</template>| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
disabled | boolean | false | 是否禁用 |
class | HTMLAttributes['class'] | - | 自定义 CSS 类 |
| 名称 | 说明 |
|---|---|
default | 复选框标签内容 |
通过 v-model 双向绑定,无需单独事件
无
<script setup lang="ts">
const checked = ref(false)
</script>
<template>
<FmCheckbox v-model="checked">选项</FmCheckbox>
</template><template>
<FmCheckbox disabled>禁用选项</FmCheckbox>
<FmCheckbox v-model="checked" disabled>禁用选中</FmCheckbox>
</template><script setup lang="ts">
const hobbies = ref(['reading', 'music'])
</script>
<template>
<div class="flex flex-col gap-2">
<FmCheckbox v-model="hobbies" value="reading">阅读</FmCheckbox>
<FmCheckbox v-model="hobbies" value="music">音乐</FmCheckbox>
<FmCheckbox v-model="hobbies" value="sports">运动</FmCheckbox>
</div>
</template><template>
<FmCheckbox v-model="checked" />
</template><template>
<FmCheckbox v-model="checked" class="gap-4">
<span class="text-primary font-medium">自定义样式</span>
</FmCheckbox>
</template><script setup lang="ts">
const form = reactive({
agreeTerms: false,
subscribe: true,
})
function handleSubmit() {
if (!form.agreeTerms) {
return
}
console.log('提交表单')
}
</script>
<template>
<form @submit.prevent="handleSubmit">
<FmCheckbox v-model="form.agreeTerms">
我已阅读并同意服务条款
</FmCheckbox>
<FmCheckbox v-model="form.subscribe">
订阅我们的新闻通讯
</FmCheckbox>
<FmButton type="submit" :disabled="!form.agreeTerms">提交</FmButton>
</form>
</template>