当前位置:首页 > VUE

vue 实现复选框

2026-01-21 06:16:45VUE

Vue 实现复选框的方法

在 Vue 中实现复选框可以通过 v-model 指令绑定数据,结合 input 元素的 type="checkbox" 属性来实现。以下是几种常见场景的实现方式。

单个复选框绑定布尔值

适用于单个复选框,绑定一个布尔值来控制选中状态。

<template>
  <div>
    <input type="checkbox" id="checkbox" v-model="checked" />
    <label for="checkbox">{{ checked ? '选中' : '未选中' }}</label>
  </div>
</template>

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

多个复选框绑定数组

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

<template>
  <div>
    <input type="checkbox" id="apple" value="苹果" v-model="fruits" />
    <label for="apple">苹果</label>
    <input type="checkbox" id="banana" value="香蕉" v-model="fruits" />
    <label for="banana">香蕉</label>
    <input type="checkbox" id="orange" value="橙子" v-model="fruits" />
    <label for="orange">橙子</label>
    <p>选中的水果: {{ fruits }}</p>
  </div>
</template>

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

动态生成复选框

适用于根据数据动态生成复选框的场景。

<template>
  <div>
    <div v-for="fruit in fruitOptions" :key="fruit.value">
      <input type="checkbox" :id="fruit.value" :value="fruit.value" v-model="fruits" />
      <label :for="fruit.value">{{ fruit.label }}</label>
    </div>
    <p>选中的水果: {{ fruits }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      fruitOptions: [
        { value: 'apple', label: '苹果' },
        { value: 'banana', label: '香蕉' },
        { value: 'orange', label: '橙子' }
      ],
      fruits: []
    }
  }
}
</script>

自定义复选框组件

封装一个可复用的复选框组件。

<template>
  <div>
    <input type="checkbox" :id="id" :checked="checked" @change="$emit('change', $event.target.checked)" />
    <label :for="id">{{ label }}</label>
  </div>
</template>

<script>
export default {
  props: {
    id: {
      type: String,
      required: true
    },
    label: {
      type: String,
      required: true
    },
    checked: {
      type: Boolean,
      default: false
    }
  }
}
</script>

使用自定义组件:

vue 实现复选框

<template>
  <div>
    <custom-checkbox id="custom" label="自定义复选框" :checked="isChecked" @change="handleChange" />
  </div>
</template>

<script>
import CustomCheckbox from './CustomCheckbox.vue'

export default {
  components: {
    CustomCheckbox
  },
  data() {
    return {
      isChecked: false
    }
  },
  methods: {
    handleChange(checked) {
      this.isChecked = checked
    }
  }
}
</script>

注意事项

  • 使用 v-model 时,确保绑定的数据类型与需求匹配(布尔值或数组)。
  • 动态生成复选框时,为每个复选框设置唯一的 key 属性以提高性能。
  • 自定义组件时,通过 props$emit 实现父子组件通信。

标签: 复选框vue
分享给朋友:

相关文章

vue树形实现

vue树形实现

Vue 树形组件实现方法 使用递归组件实现树形结构 递归组件是 Vue 中实现树形结构的常见方法。通过组件调用自身的方式,可以轻松构建多层嵌套的树形结构。 <template> &l…

vue实现过程

vue实现过程

Vue 的实现过程 Vue 的实现过程可以分为多个核心模块,包括响应式系统、虚拟 DOM、模板编译等。以下是 Vue 的主要实现过程分析。 响应式系统 Vue 的响应式系统基于 Object.def…

vue 实现modal

vue 实现modal

Vue 实现 Modal 的方法 使用 Vue 原生组件 通过 Vue 的组件系统可以轻松实现 Modal。创建一个可复用的 Modal 组件,通过 props 控制显示与隐藏。 <templ…

vue实现treeselect

vue实现treeselect

Vue TreeSelect 实现方法 使用 Vue 实现 TreeSelect 组件可以通过以下几种方式完成,包括使用现成的第三方库或自行封装组件。 使用第三方库 推荐使用成熟的第三方 TreeS…

vue实现多选

vue实现多选

Vue 实现多选功能 在 Vue 中实现多选功能可以通过多种方式完成,以下是常见的几种方法: 使用 v-model 绑定数组 通过 v-model 绑定到一个数组,可以实现多选功能。适用于复选框组(…

vue实现追加

vue实现追加

追加数据到数组或列表 在Vue中追加数据到数组或列表,可以通过push方法或concat方法实现。以下是几种常见的实现方式: 方法一:使用push方法 this.items.push(newIte…