当前位置:首页 > VUE

vue实现checkbox选取

2026-01-16 06:10:46VUE

Vue 实现 Checkbox 选取

在 Vue 中实现 Checkbox 的选取功能可以通过 v-model 双向绑定数据,结合数组或布尔值来管理选中状态。以下是几种常见实现方式:

单个 Checkbox 绑定布尔值

适用于单个复选框的场景,绑定一个布尔值表示选中状态。

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

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

多个 Checkbox 绑定数组

适用于多个复选框的场景,绑定一个数组来存储选中的值。

<template>
  <div>
    <input type="checkbox" id="option1" value="选项1" v-model="selectedOptions" />
    <label for="option1">选项1</label>
    <input type="checkbox" id="option2" value="选项2" v-model="selectedOptions" />
    <label for="option2">选项2</label>
    <input type="checkbox" id="option3" value="选项3" v-model="selectedOptions" />
    <label for="option3">选项3</label>
    <p>已选:{{ selectedOptions }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOptions: []
    };
  }
};
</script>

动态生成 Checkbox 列表

适用于动态渲染复选框的场景,通常结合 v-for 循环生成选项。

<template>
  <div>
    <div v-for="option in options" :key="option.value">
      <input 
        type="checkbox" 
        :id="option.value" 
        :value="option.value" 
        v-model="selectedOptions" 
      />
      <label :for="option.value">{{ option.label }}</label>
    </div>
    <p>已选:{{ selectedOptions }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      options: [
        { value: 'opt1', label: '选项A' },
        { value: 'opt2', label: '选项B' },
        { value: 'opt3', label: '选项C' }
      ],
      selectedOptions: []
    };
  }
};
</script>

全选与反选功能

通过计算属性或方法实现全选/反选逻辑。

vue实现checkbox选取

<template>
  <div>
    <input type="checkbox" id="selectAll" v-model="allSelected" @change="toggleAll" />
    <label for="selectAll">全选</label>
    <div v-for="item in items" :key="item.id">
      <input type="checkbox" :id="item.id" :value="item.id" v-model="selectedItems" />
      <label :for="item.id">{{ item.name }}</label>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: '项目1' },
        { id: 2, name: '项目2' },
        { id: 3, name: '项目3' }
      ],
      selectedItems: []
    };
  },
  computed: {
    allSelected: {
      get() {
        return this.selectedItems.length === this.items.length;
      },
      set(value) {
        this.selectedItems = value ? this.items.map(item => item.id) : [];
      }
    }
  },
  methods: {
    toggleAll() {
      this.allSelected = !this.allSelected;
    }
  }
};
</script>

注意事项

  • 使用 v-model 时,确保绑定的数据类型匹配(数组或布尔值)。
  • 动态生成的复选框需要为 value 属性赋值,否则无法正确收集选中值。
  • 全选功能可通过计算属性的 getset 方法简化逻辑。

标签: vuecheckbox
分享给朋友:

相关文章

vue实现app

vue实现app

Vue 实现 App 的常见方法 使用 Vue 开发移动端 App 主要有两种主流方案:混合开发(Hybrid)和原生渲染。以下是具体实现方式和工具链: 混合开发方案(WebView 嵌入) 通过…

vue实现滑块

vue实现滑块

Vue 实现滑块组件的方法 使用原生 HTML 和 Vue 指令 通过 Vue 的 v-model 和事件监听实现基础滑块功能。创建一个包含 input 元素的组件,类型设置为 range,并绑定到…

vue实现setinterval

vue实现setinterval

在 Vue 中使用 setInterval Vue 中可以通过生命周期钩子和方法结合 setInterval 实现定时任务。以下是一个完整的实现示例: <template> <…

vue 实现表单

vue 实现表单

Vue 表单实现方法 Vue.js 提供了多种方式实现表单,包括双向数据绑定、表单验证和动态表单生成。以下是常见的实现方法: 基础表单绑定 使用 v-model 指令实现表单元素与数据的双向绑定:…

vue多选实现

vue多选实现

Vue 多选实现方法 基础实现(v-model + multiple) 在 Vue 中实现多选可以通过 <select> 元素的 multiple 属性结合 v-model 完成。v-mo…

vue实现注册

vue实现注册

Vue 实现注册功能 注册功能通常涉及前端表单、数据验证、与后端 API 的交互等步骤。以下是一个完整的 Vue 实现注册功能的方案。 创建注册表单 使用 Vue 的模板语法创建注册表单,包含用户名…