实现单选功能。通过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 中实现缩放功能可以通过多种方式完成,以下是一些常见的方法: 使用 CSS transform 属性 通过 CSS 的 transform: scale() 属性可…

vue 实现排序

vue 实现排序

Vue 实现排序的方法 使用计算属性实现排序 通过计算属性对数组进行排序,可以保持原始数据不变。示例代码展示了如何对列表按名称升序排序: <template> <div>…

vue 实现后退

vue 实现后退

实现后退功能的方法 在Vue中实现后退功能通常需要结合浏览器历史记录API或Vue Router的导航方法。以下是几种常见的实现方式: 使用Vue Router的go方法 this.$router…

vue 绑定实现

vue 绑定实现

Vue 绑定实现 Vue 提供了多种数据绑定的方式,包括文本插值、属性绑定、事件绑定、双向绑定等。以下是常见的绑定实现方法: 文本插值 使用双大括号 {{ }} 进行文本插值,将数据动态渲染到 DO…

mui实现vue

mui实现vue

mui 实现 Vue 的步骤 mui 是一个轻量级的前端框架,常用于移动端开发。结合 Vue 可以实现高效的开发体验。以下是具体实现方法。 安装 mui 和 Vue 通过 npm 或 yarn 安装…

vue实现treetable

vue实现treetable

Vue实现TreeTable的方法 使用第三方组件库(如Element UI) Element UI的el-table组件支持树形表格展示,通过设置row-key和tree-props属性即可实现。…