当前位置:首页 > VUE

vue实现单选互斥

2026-01-19 07:52:09VUE

实现单选互斥的方法

在Vue中实现单选互斥功能,可以通过以下几种方式实现:

使用v-model绑定同一变量

通过将多个单选按钮绑定到同一个变量,Vue会自动处理互斥逻辑。当选择一个选项时,其他选项会自动取消选中。

<template>
  <div>
    <input type="radio" id="option1" value="option1" v-model="selectedOption">
    <label for="option1">Option 1</label>

    <input type="radio" id="option2" value="option2" v-model="selectedOption">
    <label for="option2">Option 2</label>

    <input type="radio" id="option3" value="option3" v-model="selectedOption">
    <label for="option3">Option 3</label>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: ''
    }
  }
}
</script>

使用原生name属性

vue实现单选互斥

HTML原生的radio按钮通过相同的name属性实现互斥,这种方法不依赖Vue。

<template>
  <div>
    <input type="radio" id="option1" name="options" value="option1">
    <label for="option1">Option 1</label>

    <input type="radio" id="option2" name="options" value="option2">
    <label for="option2">Option 2</label>

    <input type="radio" id="option3" name="options" value="option3">
    <label for="option3">Option 3</label>
  </div>
</template>

使用组件库的单选组

vue实现单选互斥

流行的UI组件库如Element UI、Vuetify等都提供了单选组组件,内置了互斥功能。

<template>
  <el-radio-group v-model="selectedOption">
    <el-radio label="option1">Option 1</el-radio>
    <el-radio label="option2">Option 2</el-radio>
    <el-radio label="option3">Option 3</el-radio>
  </el-radio-group>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: ''
    }
  }
}
</script>

自定义实现

如果需要更复杂的控制,可以自定义实现互斥逻辑。

<template>
  <div>
    <div 
      v-for="option in options" 
      :key="option.value"
      @click="selectOption(option.value)"
      :class="{ 'selected': selectedOption === option.value }">
      {{ option.label }}
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: '',
      options: [
        { value: 'option1', label: 'Option 1' },
        { value: 'option2', label: 'Option 2' },
        { value: 'option3', label: 'Option 3' }
      ]
    }
  },
  methods: {
    selectOption(value) {
      this.selectedOption = value
    }
  }
}
</script>

注意事项

  • 确保所有互斥的单选按钮绑定到同一个变量
  • 考虑添加默认选中的选项以提升用户体验
  • 对于复杂场景,可能需要结合计算属性和watch来实现更精细的控制
  • 移动端开发时注意触摸反馈和可点击区域大小

标签: 单选互斥
分享给朋友:

相关文章

vue实现单选按钮

vue实现单选按钮

实现单选按钮的基本方法 在Vue中实现单选按钮通常使用v-model指令绑定数据,结合input元素的type="radio"属性。以下是一个基础示例: <template> <…

vue实现单选弹窗

vue实现单选弹窗

Vue 实现单选弹窗的方法 使用 Element UI 的 Dialog 和 Radio 组件 安装 Element UI 后,可以通过 Dialog 和 Radio 组件快速实现单选弹窗功能。…

vue checbox实现单选

vue checbox实现单选

使用 v-model 和计算属性 在 Vue 中,可以通过 v-model 绑定一个计算属性来实现单选效果。计算属性用于动态控制复选框的选中状态。 <template> <d…

vue实现单选表格

vue实现单选表格

实现单选表格的基本思路 在Vue中实现单选表格通常需要结合<table>元素和Vue的数据绑定特性。通过v-model或自定义事件管理选中状态,确保同一时间仅有一行被选中。 使用v-m…

vue 单选组合 实现

vue 单选组合 实现

Vue 单选组合实现 在 Vue 中实现单选组合可以通过多种方式完成,常见的方法包括使用原生 HTML 的 <input type="radio"> 结合 Vue 的数据绑定,或使用第三方…

vue实现单选全选

vue实现单选全选

实现单选与全选功能 在Vue中实现单选和全选功能,可以通过数据绑定和计算属性来完成。以下是一个完整的实现方案: 数据准备 data() { return { items: […