vue实现勾选框
使用 Vue 实现勾选框
在 Vue 中实现勾选框可以通过多种方式完成,以下是一些常见的方法:
使用 v-model 绑定数据
通过 v-model 可以直接绑定一个布尔值来控制勾选框的状态:

<template>
<div>
<input type="checkbox" v-model="isChecked" />
<label>勾选状态: {{ isChecked }}</label>
</div>
</template>
<script>
export default {
data() {
return {
isChecked: false
};
}
};
</script>
自定义勾选框样式
如果需要自定义勾选框的样式,可以通过隐藏原生输入框并结合 CSS 实现:
<template>
<div>
<label class="custom-checkbox">
<input type="checkbox" v-model="isChecked" />
<span class="checkmark"></span>
自定义勾选框
</label>
</div>
</template>
<script>
export default {
data() {
return {
isChecked: false
};
}
};
</script>
<style>
.custom-checkbox {
display: inline-block;
position: relative;
padding-left: 25px;
cursor: pointer;
}
.custom-checkbox input {
position: absolute;
opacity: 0;
cursor: pointer;
}
.checkmark {
position: absolute;
top: 0;
left: 0;
height: 18px;
width: 18px;
background-color: #eee;
border-radius: 3px;
}
.custom-checkbox input:checked ~ .checkmark {
background-color: #2196F3;
}
.checkmark:after {
content: "";
position: absolute;
display: none;
}
.custom-checkbox input:checked ~ .checkmark:after {
display: block;
}
.custom-checkbox .checkmark:after {
left: 6px;
top: 2px;
width: 5px;
height: 10px;
border: solid white;
border-width: 0 2px 2px 0;
transform: rotate(45deg);
}
</style>
处理勾选框组
如果需要处理多个勾选框,可以使用数组来存储选中的值:

<template>
<div>
<div v-for="option in options" :key="option.value">
<input
type="checkbox"
:value="option.value"
v-model="selectedOptions"
/>
<label>{{ option.label }}</label>
</div>
<p>选中的选项: {{ selectedOptions }}</p>
</div>
</template>
<script>
export default {
data() {
return {
options: [
{ value: 'option1', label: '选项1' },
{ value: 'option2', label: '选项2' },
{ value: 'option3', label: '选项3' }
],
selectedOptions: []
};
}
};
</script>
使用第三方组件库
如果需要更丰富的功能,可以使用第三方组件库如 Element UI、Vuetify 或 Ant Design Vue:
以 Element UI 为例:
<template>
<div>
<el-checkbox v-model="checked">备选项</el-checkbox>
</div>
</template>
<script>
export default {
data() {
return {
checked: false
};
}
};
</script>
以上方法可以根据具体需求选择适合的实现方式。






