实现单选功能。通过v-model绑定数据,确保同一组单选按钮的name属性相同。 &…">
当前位置:首页 > VUE

vue怎么实现单选

2026-02-11 09:46:49VUE

使用原生HTML单选按钮

在Vue中可以直接使用HTML的<input type="radio">实现单选功能。通过v-model绑定数据,确保同一组单选按钮的name属性相同。

<template>
  <div>
    <input type="radio" id="option1" value="Option1" v-model="selectedOption" name="group">
    <label for="option1">Option 1</label>
    <input type="radio" id="option2" value="Option2" v-model="selectedOption" name="group">
    <label for="option2">Option 2</label>
    <p>Selected: {{ selectedOption }}</p>
  </div>
</template>

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

使用Vue组件库(如Element UI)

若使用UI库(如Element UI),可直接调用其封装好的单选组件,例如el-radio

<template>
  <div>
    <el-radio v-model="selectedOption" label="Option1">Option 1</el-radio>
    <el-radio v-model="selectedOption" label="Option2">Option 2</el-radio>
    <p>Selected: {{ 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="dynamicGroup"
      >
      <label :for="option.value">{{ option.label }}</label>
    </div>
    <p>Selected: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: '',
      options: [
        { value: 'A', label: 'Option A' },
        { value: 'B', label: 'Option B' }
      ]
    }
  }
}
</script>

自定义单选组件

封装可复用的单选组件,通过props接收选项列表,emit事件传递选中值。

vue怎么实现单选

<!-- RadioGroup.vue -->
<template>
  <div>
    <div v-for="item in options" :key="item.value">
      <input 
        type="radio" 
        :id="item.value" 
        :value="item.value" 
        :checked="item.value === modelValue"
        @change="$emit('update:modelValue', item.value)"
        name="customGroup"
      >
      <label :for="item.value">{{ item.label }}</label>
    </div>
  </div>
</template>

<script>
export default {
  props: {
    options: Array,
    modelValue: String
  },
  emits: ['update:modelValue']
}
</script>

<!-- 父组件中使用 -->
<template>
  <RadioGroup 
    v-model="selectedOption" 
    :options="[
      { value: 'X', label: 'Choice X' },
      { value: 'Y', label: 'Choice Y' }
    ]" 
  />
  <p>Selected: {{ selectedOption }}</p>
</template>

关键注意事项

  • v-model绑定:确保单选按钮组绑定同一个响应式数据。
  • name属性:同一组的单选按钮需设置相同的name以避免多选冲突。
  • 无障碍支持:通过<label>关联id提升可访问性。

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

相关文章

vue如何实现到期提醒

vue如何实现到期提醒

实现 Vue 到期提醒功能 使用计算属性计算剩余时间 在 Vue 组件中定义一个计算属性,计算目标日期与当前日期的差值。通过 Date 对象获取时间戳并计算剩余天数或小时数。 computed: {…

vue 实现复选

vue 实现复选

Vue 实现复选功能 在 Vue 中实现复选功能可以通过多种方式完成,以下是常见的几种方法: 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以自动收集用户选择的复选框值。…

vue实现hover

vue实现hover

Vue 实现 hover 效果的方法 在 Vue 中实现 hover 效果可以通过多种方式实现,包括使用 CSS、Vue 指令或事件监听。以下是几种常见的方法: 使用 CSS :hover 伪类 通…

vue scrolltop 实现

vue scrolltop 实现

实现 Vue 中的 scrollTop 在 Vue 中实现滚动到顶部功能可以通过多种方式完成,包括使用原生 JavaScript、Vue 指令或第三方库。以下是几种常见的实现方法: 使用原生 Jav…

vue实现登录权限

vue实现登录权限

Vue 实现登录权限方案 路由守卫控制访问权限 安装vue-router并配置路由守卫,在全局前置守卫中检查用户登录状态和权限。未登录用户访问受限路由时重定向到登录页。 // router.js r…

vue实现语音播报

vue实现语音播报

实现语音播报的基本方法 在Vue中实现语音播报功能,可以通过Web Speech API中的SpeechSynthesis接口来完成。该接口允许开发者将文本转换为语音并播放。 使用SpeechSyn…