当前位置:首页 > 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 实现豆瓣电影类功能的实现方案,涵盖核心模块和技术要点: 数据获取与 API 调用 使用豆瓣开放 API(需注意调用频率限制)或第三方代理接口 推荐 axios 进行异步请求,配合…

vue 实现blog

vue 实现blog

Vue 实现博客的基本步骤 使用 Vue 实现博客可以分为前端和后端两部分,前端使用 Vue.js 框架,后端可以选择 Node.js、Python 或其他服务端语言。以下是一个基于 Vue 的博客实…

vue 实现挂载

vue 实现挂载

Vue 实现挂载的基本方法 在 Vue 中,挂载是将 Vue 实例与 DOM 元素关联的过程。通过挂载,Vue 可以管理 DOM 并实现数据绑定和响应式更新。 创建 Vue 实例并挂载 const…

vue实现逻辑

vue实现逻辑

Vue 实现逻辑的核心概念 Vue.js 是一个渐进式 JavaScript 框架,其核心逻辑围绕数据驱动和组件化开发。通过响应式系统、虚拟 DOM 和组件生命周期等机制,Vue 实现了高效的前端开发…

vue实现长按

vue实现长按

Vue 实现长按功能的方法 在 Vue 中实现长按功能可以通过原生事件监听或自定义指令完成。以下是几种常见实现方式: 使用原生事件监听 通过 @mousedown 和 @mouseup 或 @tou…

vue翻页实现

vue翻页实现

Vue翻页实现方法 基础分页组件实现 使用v-for和计算属性实现基础分页逻辑: <template> <div> <ul> <li…