当前位置:首页 > VUE

vue 实现复选

2026-03-06 22:40:59VUE

Vue 实现复选

在 Vue 中实现复选功能通常可以通过以下方法完成,包括使用原生 HTML 的 checkbox 或 Vue 的 v-model 指令绑定数组。

使用原生 HTML checkbox

<template>
  <div>
    <input type="checkbox" id="option1" v-model="checkedOptions" value="Option1">
    <label for="option1">Option 1</label>
    <input type="checkbox" id="option2" v-model="checkedOptions" value="Option2">
    <label for="option2">Option 2</label>
    <input type="checkbox" id="option3" v-model="checkedOptions" value="Option3">
    <label for="option3">Option 3</label>
    <p>Checked options: {{ checkedOptions }}</p>
  </div>
</template>

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

使用 Vue 的 v-model 绑定数组

Vue 的 v-model 可以绑定到一个数组,自动收集选中的值。

vue 实现复选

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

<script>
export default {
  data() {
    return {
      options: [
        { value: 'opt1', label: 'Option 1' },
        { value: 'opt2', label: 'Option 2' },
        { value: 'opt3', label: 'Option 3' }
      ],
      selectedOptions: []
    }
  }
}
</script>

动态生成复选框

如果需要动态生成复选框,可以结合 v-for 循环选项。

vue 实现复选

<template>
  <div>
    <div v-for="item in items" :key="item.id">
      <input type="checkbox" v-model="selectedItems" :value="item.id">
      {{ item.name }}
    </div>
    <p>Selected items: {{ selectedItems }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: 'Item 1' },
        { id: 2, name: 'Item 2' },
        { id: 3, name: 'Item 3' }
      ],
      selectedItems: []
    }
  }
}
</script>

自定义复选框组件

如果需要复用复选框逻辑,可以封装一个自定义复选框组件。

<template>
  <div>
    <custom-checkbox v-model="selectedValues" :options="checkboxOptions" />
    <p>Selected values: {{ selectedValues }}</p>
  </div>
</template>

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

export default {
  components: { CustomCheckbox },
  data() {
    return {
      checkboxOptions: [
        { value: 'val1', label: 'Value 1' },
        { value: 'val2', label: 'Value 2' },
        { value: 'val3', label: 'Value 3' }
      ],
      selectedValues: []
    }
  }
}
</script>

自定义复选框组件实现

CustomCheckbox.vue 的实现如下:

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

<script>
export default {
  props: {
    value: {
      type: Array,
      default: () => []
    },
    options: {
      type: Array,
      required: true
    }
  },
  computed: {
    internalValue: {
      get() {
        return this.value
      },
      set(val) {
        this.$emit('input', val)
      }
    }
  }
}
</script>

通过以上方法,可以在 Vue 中灵活实现复选功能,无论是简单的静态复选框还是动态生成的复杂逻辑。

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

相关文章

vue卖座网实现

vue卖座网实现

Vue 卖座网实现 项目结构搭建 使用 Vue CLI 快速初始化项目,安装必要依赖如 Vue Router、Vuex、Axios。 创建核心目录结构:components(通用组件)、views(页…

vue实现绑卡的原理

vue实现绑卡的原理

Vue 实现绑卡的原理 Vue 实现绑卡功能通常涉及前端表单处理、数据绑定、验证以及和后端 API 的交互。以下是实现绑卡功能的核心原理和步骤: 数据绑定与表单处理 Vue 通过 v-model 指…

vue datepicker 实现

vue datepicker 实现

实现 Vue Datepicker 的基本方法 在 Vue 项目中实现日期选择功能,可以使用第三方库如 vue-datepicker 或 v-calendar。以下是两种常见实现方式: 安装 vue…

vue实现帖子

vue实现帖子

Vue 实现帖子功能 使用 Vue 实现帖子功能需要结合前端框架和后端数据交互,以下是实现的关键步骤和代码示例。 帖子列表展示 创建帖子列表组件,使用 v-for 渲染帖子数据,通过 axios 获…

vue 实现过滤

vue 实现过滤

Vue 实现过滤的方法 在 Vue 中实现过滤功能可以通过多种方式完成,包括使用计算属性、自定义过滤器、第三方库等。以下是几种常见的实现方法: 使用计算属性进行过滤 计算属性是 Vue 中最常用的过…

vue实现图片

vue实现图片

Vue 实现图片功能的方法 静态图片引入 在 Vue 项目中,可以通过 src 属性直接引入静态图片。图片通常放在 public 或 assets 目录下。 <template> &…