当前位置:首页 > VUE

vue实现checkbox单选

2026-02-17 17:44:16VUE

实现 Vue Checkbox 单选的方法

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

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

<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)外观改为复选框样式:

<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 属性

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

vue实现checkbox单选

<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实现a4打印模板

vue实现a4打印模板

使用Vue实现A4打印模板 在Vue中实现A4打印模板需要结合CSS的打印样式和Vue的模板渲染能力。以下是具体实现方法: 设置A4纸张尺寸 在CSS中定义A4纸张的标准尺寸(210mm × 297…

vue优秀实现

vue优秀实现

Vue.js 优秀实现方法 响应式数据管理 使用 Vue 的 ref 和 reactive 处理基础类型和对象类型数据,结合 computed 计算属性优化渲染性能。对于复杂状态,推荐 Pinia 替…

vue实现swipe

vue实现swipe

Vue实现Swipe功能的方法 使用第三方库(推荐) Vue生态中有多个成熟的轮播/滑动组件库,例如vue-awesome-swiper或swiper/vue。以下是基于swiper/vue的实现示例…

vue实现发帖

vue实现发帖

使用 Vue 实现发帖功能 前端实现 创建发帖表单组件,包含标题和内容输入框,以及提交按钮。使用 v-model 绑定表单数据。 <template> <div>…

vue 实现长按

vue 实现长按

实现长按功能的基本思路 在Vue中实现长按功能,通常需要监听元素的mousedown或touchstart事件,启动一个计时器。当用户按住元素超过设定的时间阈值时,触发长按回调函数。如果在时间阈值内触…

vue实现横滚

vue实现横滚

Vue 实现横滚效果 横滚效果通常指水平滚动内容,常见于轮播图、横向导航栏等场景。以下是几种实现方式: 使用 CSS 和 Vue 结合 通过 CSS 的 overflow-x 和 white-spa…