当前位置:首页 > VUE

vue实现checkbox

2026-01-13 07:36:00VUE

Vue 实现 Checkbox 的基本方法

在 Vue 中实现 Checkbox 可以通过 v-model 直接绑定数据,结合 input 元素的 type="checkbox" 属性。以下是一个基础示例:

<template>
  <div>
    <input type="checkbox" v-model="isChecked" />
    <label>勾选状态:{{ isChecked }}</label>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isChecked: false,
    };
  },
};
</script>

动态绑定多个 Checkbox

如果需要动态生成多个 Checkbox 并绑定到数组,可以通过 v-for 遍历选项,并用 v-model 绑定到数组:

<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: 'apple', label: '苹果' },
        { value: 'banana', label: '香蕉' },
        { value: 'orange', label: '橙子' },
      ],
      selectedOptions: [],
    };
  },
};
</script>

自定义 Checkbox 样式

原生 Checkbox 样式可以通过隐藏原生输入框并自定义标签样式来实现:

<template>
  <div>
    <label class="custom-checkbox">
      <input type="checkbox" v-model="isChecked" />
      <span class="checkmark"></span>
      <span>自定义样式</span>
    </label>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isChecked: false,
    };
  },
};
</script>

<style>
.custom-checkbox {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.custom-checkbox input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}

.checkmark {
  width: 20px;
  height: 20px;
  background-color: #eee;
  margin-right: 8px;
  border-radius: 4px;
}

.custom-checkbox input:checked ~ .checkmark {
  background-color: #2196f3;
}

.checkmark:after {
  content: "";
  display: none;
  position: absolute;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.custom-checkbox input:checked ~ .checkmark:after {
  display: block;
}
</style>

使用第三方组件库

若需快速实现复杂功能(如全选、半选等),可以借助第三方组件库:

  • Element UIel-checkboxel-checkbox-group
  • Vuetifyv-checkbox
  • Ant Design Vuea-checkbox

以 Element UI 为例:

<template>
  <div>
    <el-checkbox v-model="checked">选项</el-checkbox>
    <el-checkbox-group v-model="checkedList">
      <el-checkbox label="A"></el-checkbox>
      <el-checkbox label="B"></el-checkbox>
    </el-checkbox-group>
  </div>
</template>

<script>
export default {
  data() {
    return {
      checked: false,
      checkedList: [],
    };
  },
};
</script>

注意事项

  • 动态绑定时需确保 v-model 初始值为数组(多选)或布尔值(单选)。
  • 自定义样式时注意处理无障碍访问(如关联 labelinputid)。
  • 第三方组件需按文档引入并注册。

vue实现checkbox

标签: vuecheckbox
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

vue.js实现轮播的方法 使用第三方库(如Swiper) 安装Swiper库: npm install swiper 在Vue组件中引入Swiper: <template>…

vue实现预览

vue实现预览

Vue实现文件预览的方法 使用Vue实现文件预览功能可以通过多种方式完成,具体取决于文件类型(图片、PDF、视频等)。以下是几种常见文件类型的实现方案。 图片预览 通过<input type=…

vue实现添加用户

vue实现添加用户

Vue 实现添加用户功能 数据绑定与表单设计 在 Vue 中实现添加用户功能,首先需要设计一个表单,用于收集用户输入的数据。通过 v-model 实现双向数据绑定,确保表单数据与 Vue 实例中的数据…

vue实现打字机

vue实现打字机

Vue实现打字机效果 在Vue中实现打字机效果可以通过动态更新文本内容并添加延迟来实现。以下是几种常见的实现方法: 使用setInterval实现 <template> <di…

vue实现签约合作弹窗

vue实现签约合作弹窗

实现签约合作弹窗的步骤 使用Vue实现签约合作弹窗可以通过组件化方式完成,结合模态框和表单交互逻辑。以下是具体实现方法: 1. 创建弹窗组件 新建一个Vue组件文件(如SignContractDia…

vue实现矩阵

vue实现矩阵

Vue 实现矩阵的方法 在 Vue 中实现矩阵操作可以通过多种方式完成,以下是一些常见的方法: 使用二维数组表示矩阵 矩阵可以用二维数组来表示,每个元素对应矩阵中的一个值。在 Vue 的 data…