当前位置:首页 > VUE

vue怎么实现单选

2026-03-08 09:25:07VUE

Vue 实现单选的方法

在 Vue 中实现单选功能可以通过多种方式完成,以下是几种常见的方法:

使用 v-model 绑定单选按钮组

通过 v-model 绑定一个变量到单选按钮组,确保同一组单选按钮的 name 属性相同,从而实现单选效果。

vue怎么实现单选

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

    <input type="radio" id="option2" value="option2" v-model="selectedOption" name="options">
    <label for="option2">选项 2</label>

    <input type="radio" id="option3" value="option3" v-model="selectedOption" name="options">
    <label for="option3">选项 3</label>

    <p>选中的选项是: {{ selectedOption }}</p>
  </div>
</template>

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

使用 Vue 组件库的单选组件

如果项目中使用 UI 组件库(如 Element UI、Vuetify 或 Ant Design Vue),可以直接使用其提供的单选组件。

以 Element UI 为例:

vue怎么实现单选

<template>
  <div>
    <el-radio-group v-model="selectedOption">
      <el-radio label="option1">选项 1</el-radio>
      <el-radio label="option2">选项 2</el-radio>
      <el-radio label="option3">选项 3</el-radio>
    </el-radio-group>
    <p>选中的选项是: {{ selectedOption }}</p>
  </div>
</template>

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

动态生成单选按钮

通过 v-for 动态生成单选按钮,适用于选项数据来自后端或动态变化的场景。

<template>
  <div>
    <div v-for="option in options" :key="option.value">
      <input 
        type="radio" 
        :id="option.value" 
        :value="option.value" 
        v-model="selectedOption" 
        name="dynamicOptions"
      >
      <label :for="option.value">{{ option.label }}</label>
    </div>
    <p>选中的选项是: {{ selectedOption }}</p>
  </div>
</template>

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

自定义单选逻辑

如果需要更复杂的逻辑(如禁用某些选项或自定义样式),可以通过计算属性或方法实现。

<template>
  <div>
    <div 
      v-for="option in options" 
      :key="option.value"
      @click="selectOption(option.value)"
      :class="{ 'active': selectedOption === option.value }"
    >
      {{ option.label }}
    </div>
    <p>选中的选项是: {{ selectedOption }}</p>
  </div>
</template>

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

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

注意事项

  • 确保同一组的单选按钮绑定相同的 v-model 变量。
  • 动态生成选项时,为每个选项设置唯一的 key
  • 使用组件库时,注意查阅文档以支持更多功能(如禁用、自定义样式等)。

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

相关文章

vue实现搜索

vue实现搜索

Vue 实现搜索功能 在 Vue 中实现搜索功能通常涉及数据绑定、事件监听和过滤逻辑。以下是几种常见的实现方式: 使用计算属性过滤列表 <template> <div&…

vue实现一个标签选择

vue实现一个标签选择

Vue 标签选择组件实现 基础实现 使用 Vue 的 v-for 和 v-model 指令可以快速实现标签选择功能: <template> <div class="tag-se…

vue轮询实现

vue轮询实现

Vue 轮询实现方法 在 Vue 中实现轮询可以通过以下几种方式: 使用 setInterval data() { return { pollInterval: null }…

vue 实现打印

vue 实现打印

Vue 实现打印功能的方法 在Vue项目中实现打印功能,可以通过以下几种方式实现: 使用window.print()方法 通过调用浏览器的原生打印API实现基础打印功能,适用于简单内容打印。 //…

vue实现分栏

vue实现分栏

Vue实现分栏的常见方法 使用CSS Flexbox布局 通过Flexbox可以快速实现分栏效果,适合大多数响应式布局场景 <template> <div class="con…

vue mvvm 实现

vue mvvm 实现

Vue MVVM 实现原理 Vue.js 的 MVVM(Model-View-ViewModel)架构通过数据绑定和响应式系统实现视图与数据的自动同步。以下是其核心实现机制: 数据劫持与响应式系统…