当前位置:首页 > VUE

vue实现checkbox单选

2026-02-17 17:44:16VUE

实现 Vue Checkbox 单选的方法

在 Vue 中实现 Checkbox 单选功能,可以通过绑定 v-model 和监听 change 事件来控制选中状态。以下是具体实现方式:

方法一:使用 v-model 和计算属性

vue实现checkbox单选

<template>
  <div>
    <label v-for="option in options" :key="option.value">
      <input
        type="checkbox"
        v-model="selectedValue"
        :value="option.value"
        @change="handleChange(option.value)"
      />
      {{ option.label }}
    </label>
  </div>
</template>

<script>
export default {
  data() {
    return {
      options: [
        { value: 'A', label: 'Option A' },
        { value: 'B', label: 'Option B' },
        { value: 'C', label: 'Option C' },
      ],
      selectedValue: [],
    };
  },
  methods: {
    handleChange(value) {
      this.selectedValue = [value];
    },
  },
};
</script>

方法二:使用单选框模拟复选框

通过 CSS 样式将单选框(radio)外观改为复选框样式:

vue实现checkbox单选

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

<script>
export default {
  data() {
    return {
      options: [
        { value: 'A', label: 'Option A' },
        { value: 'B', label: 'Option B' },
        { value: 'C', label: 'Option C' },
      ],
      selectedValue: '',
    };
  },
};
</script>

<style>
.checkbox-style {
  appearance: checkbox;
  -webkit-appearance: checkbox;
}
</style>

方法三:动态绑定 checked 属性

通过比较当前选项是否等于选中值来控制选中状态:

<template>
  <div>
    <label v-for="option in options" :key="option.value">
      <input
        type="checkbox"
        :checked="selectedValue === option.value"
        @change="selectedValue = option.value"
      />
      {{ option.label }}
    </label>
  </div>
</template>

<script>
export default {
  data() {
    return {
      options: [
        { value: 'A', label: 'Option A' },
        { value: 'B', label: 'Option B' },
        { value: 'C', label: 'Option C' },
      ],
      selectedValue: '',
    };
  },
};
</script>

注意事项

  • 方法一通过 v-model 绑定数组并强制设置为单选,适用于需要兼容多选改单选的场景。
  • 方法二通过 CSS 修改单选框样式,更符合原生单选行为。
  • 方法三直接通过 checked 属性控制,逻辑简单但需要手动管理状态。

根据实际需求选择合适的方法,推荐方法二或方法三实现纯粹的复选框单选效果。

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

相关文章

vue实现菜单栏锚点

vue实现菜单栏锚点

实现锚点菜单的基本思路 在Vue中实现菜单栏锚点功能,主要涉及两个方面:创建可跳转的锚点位置,以及菜单项的点击滚动控制。通过监听滚动事件可以高亮当前可见区域的对应菜单项。 创建页面锚点位置 在需要跳…

vue实现grid

vue实现grid

Vue 实现 Grid 布局的方法 使用 CSS Grid 布局 Vue 可以结合 CSS Grid 布局实现灵活的网格系统。CSS Grid 是现代浏览器原生支持的布局方案,无需额外依赖库。 &l…

vue实现签章

vue实现签章

Vue 实现签章功能 签章功能通常包括手写签名、电子印章等。以下是基于 Vue 的实现方法: 使用 canvas 实现手写签名 安装依赖(如需要): npm install signature_p…

vue实现picker

vue实现picker

Vue 实现 Picker 组件的方法 在 Vue 中实现 Picker 组件可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 HTML 和 CSS 实现 通过 Vue 的模板和样式绑定,…

vue 实现excel

vue 实现excel

Vue 实现 Excel 功能 前端导出 Excel 使用 xlsx 库可以轻松实现前端 Excel 导出功能。安装依赖: npm install xlsx 导出 Excel 示例代码: impo…

vue实现增加

vue实现增加

实现 Vue 中的新增功能 在 Vue 中实现新增功能通常涉及数据绑定、表单处理和状态管理。以下是几种常见的实现方式: 数据绑定与列表渲染 通过 v-model 绑定表单输入,使用数组的 push…