当前位置:首页 > VUE

vue按钮实现多选

2026-03-09 07:00:33VUE

Vue 按钮实现多选的方法

使用 v-model 绑定数组

通过 v-model 绑定一个数组,当按钮被选中时,值会自动添加到数组中,取消选中时从数组中移除。适用于复选框或自定义样式的按钮组。

<template>
  <div>
    <button 
      v-for="option in options" 
      :key="option.value"
      @click="toggleSelection(option.value)"
      :class="{ active: selectedValues.includes(option.value) }"
    >
      {{ option.label }}
    </button>
    <p>已选: {{ selectedValues }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      options: [
        { label: '选项1', value: '1' },
        { label: '选项2', value: '2' },
        { label: '选项3', value: '3' }
      ],
      selectedValues: []
    };
  },
  methods: {
    toggleSelection(value) {
      const index = this.selectedValues.indexOf(value);
      if (index === -1) {
        this.selectedValues.push(value);
      } else {
        this.selectedValues.splice(index, 1);
      }
    }
  }
};
</script>

<style>
.active {
  background-color: #42b983;
  color: white;
}
</style>

使用 v-model 与复选框

直接利用 <input type="checkbox"> 的多选特性,结合 v-model 绑定数组实现多选。

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

<script>
export default {
  data() {
    return {
      options: [
        { label: '选项1', value: '1' },
        { label: '选项2', value: '2' },
        { label: '选项3', value: '3' }
      ],
      selectedValues: []
    };
  }
};
</script>

使用第三方组件库

若使用 Element UIAnt Design Vue 等库,可直接调用其多选按钮组件。

Element UI 示例:

vue按钮实现多选

<template>
  <el-checkbox-group v-model="selectedValues">
    <el-checkbox-button 
      v-for="option in options" 
      :key="option.value" 
      :label="option.value"
    >
      {{ option.label }}
    </el-checkbox-button>
  </el-checkbox-group>
</template>

<script>
export default {
  data() {
    return {
      options: [
        { label: '选项1', value: '1' },
        { label: '选项2', value: '2' },
        { label: '选项3', value: '3' }
      ],
      selectedValues: []
    };
  }
};
</script>

注意事项

  • 数据绑定:确保 v-model 绑定的是数组类型,否则多选功能无法生效。
  • 样式控制:自定义按钮时需通过 :class 动态切换选中状态的样式。
  • 性能优化:若选项数量较大,建议使用虚拟滚动(如 vue-virtual-scroller)提升渲染效率。

标签: 多选按钮
分享给朋友:

相关文章

vue实现多选联动

vue实现多选联动

实现多选联动的基本思路 在Vue中实现多选联动功能,通常需要利用v-model绑定数据、监听选项变化以及动态更新关联选项。以下是几种常见的实现方式: 基于v-model和计算属性 通过v-model…

vue实现按钮弹窗

vue实现按钮弹窗

Vue 实现按钮弹窗的方法 使用 Vue 原生组件 创建一个自定义弹窗组件,通过 v-if 或 v-show 控制显示状态。 <template> <button @click…

vue 实现列表多选

vue 实现列表多选

Vue 实现列表多选的方法 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以自动处理多选逻辑。适用于复选框(checkbox)场景。 <template> &…

uniapp气泡按钮

uniapp气泡按钮

uniapp 气泡按钮实现方法 在 uniapp 中实现气泡按钮效果可以通过多种方式完成,以下是几种常见的实现方案: 使用 CSS 样式实现基础气泡 通过 CSS 的 border-radius 和…

vue 如何实现多选

vue 如何实现多选

Vue 实现多选的几种方法 使用 v-model 绑定数组 在 Vue 中,可以通过 v-model 绑定一个数组来实现多选功能。当用户勾选多个选项时,选中的值会自动添加到数组中。 <temp…

vue怎么实现多选

vue怎么实现多选

使用 v-model 绑定数组实现多选 在 Vue 中,可以通过 v-model 绑定一个数组来实现多选功能。当用户选择多个选项时,选中的值会自动添加到数组中。 <template>…