当前位置:首页 > 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 实现父子组件传值 父组件向子组件传值(props) 父组件通过 v-bind 或简写 : 向子组件传递数据。子组件通过 props 接收数据。 父组件代码: <template&g…

vue实现帖子

vue实现帖子

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

vue实现图集

vue实现图集

Vue 实现图集的方法 在 Vue 中实现图集功能可以通过多种方式完成,以下是一些常见的方法和实现步骤。 使用第三方库(如 vue-image-lightbox) 安装 vue-image-ligh…

vue实现sso

vue实现sso

Vue 实现 SSO(单点登录)方案 单点登录(SSO)允许用户通过一次登录访问多个相关系统。以下是基于 Vue 的实现方案: 使用 OAuth2/OpenID Connect 协议 OAuth2…

vue实现动态

vue实现动态

Vue 实现动态路由的方法 在 Vue 中实现动态路由通常涉及以下几个关键步骤: 使用 Vue Router 的动态路由匹配 通过 Vue Router 的 :param 语法可以实现动态路由匹配…

vue实现切换

vue实现切换

Vue 实现切换功能的方法 在 Vue 中实现切换功能可以通过多种方式实现,以下是一些常见的方法: 使用 v-if 和 v-else 指令 通过条件渲染实现切换功能,适用于简单的显示/隐藏场景。…