当前位置:首页 > VUE

vue 实现组单选

2026-02-17 03:18:38VUE

Vue 实现单选组件的核心方法

使用 v-model 绑定数据
在 Vue 中,通过 v-model 实现双向数据绑定。定义一个响应式数据(如 selectedOption)存储当前选中的值,绑定到单选组件的 value 属性。

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

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

<script>
export default {
  data() {
    return {
      selectedOption: '' // 默认选中项
    }
  }
}
</script>

动态渲染选项列表
若选项数据来自后端或动态生成,可通过 v-for 遍历渲染,并绑定唯一标识(如 id)作为 value

<template>
  <div>
    <div v-for="option in options" :key="option.id">
      <input 
        type="radio" 
        v-model="selectedOption" 
        :value="option.id"
        :id="`option-${option.id}`"
      >
      <label :for="`option-${option.id}`">{{ option.label }}</label>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: '',
      options: [
        { id: 1, label: '选项A' },
        { id: 2, label: '选项B' }
      ]
    }
  }
}
</script>

自定义单选组件
封装可复用的单选组件,通过 props 接收选项列表和默认值,通过 emit 触发选中事件。

<!-- RadioGroup.vue -->
<template>
  <div>
    <div v-for="item in options" :key="item.value">
      <input
        type="radio"
        :id="item.value"
        :value="item.value"
        v-model="internalValue"
      >
      <label :for="item.value">{{ item.label }}</label>
    </div>
  </div>
</template>

<script>
export default {
  props: {
    options: { type: Array, required: true },
    value: { type: [String, Number], default: '' }
  },
  computed: {
    internalValue: {
      get() { return this.value },
      set(val) { this.$emit('input', val) }
    }
  }
}
</script>

使用自定义组件
在父组件中引入并绑定数据,实现逻辑解耦。

vue 实现组单选

<template>
  <RadioGroup 
    v-model="selected" 
    :options="radioOptions" 
  />
</template>

<script>
import RadioGroup from './RadioGroup.vue'

export default {
  components: { RadioGroup },
  data() {
    return {
      selected: 'a',
      radioOptions: [
        { value: 'a', label: 'Alpha' },
        { value: 'b', label: 'Beta' }
      ]
    }
  }
}
</script>

注意事项

  • 唯一标识:确保每个单选按钮的 idvalue 唯一,避免冲突。
  • 初始值:若需默认选中,初始化时设置 selectedOption 为对应选项的 value
  • 样式控制:可通过 CSS 或第三方 UI 库(如 Element UI、Ant Design Vue)美化单选组。

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

相关文章

vue实现全文检索

vue实现全文检索

Vue 实现全文检索的方法 客户端全文检索(适用于小型数据集) 使用 flexsearch 或 lunr.js 等轻量级库实现前端全文检索: import FlexSearch from 'flex…

vue实现下拉刷新组件

vue实现下拉刷新组件

实现下拉刷新组件的核心思路 下拉刷新功能通常通过监听触摸事件、滚动位置和动画效果实现。Vue中可以利用自定义指令或封装组件完成,以下为两种常见实现方式。 基于自定义指令的实现 创建指令监听触摸事件,…

vue实现绑卡的原理

vue实现绑卡的原理

Vue 实现绑卡的原理 Vue 实现绑卡功能通常涉及前端表单处理、数据绑定、验证以及和后端 API 的交互。以下是实现绑卡功能的核心原理和步骤: 数据绑定与表单处理 Vue 通过 v-model 指…

vue实现主题

vue实现主题

Vue 实现主题的方法 使用 CSS 变量动态切换主题 定义全局 CSS 变量,通过修改这些变量实现主题切换。在 Vue 的根组件或全局样式中定义变量: :root { --primary-co…

vue alert实现

vue alert实现

使用 Vue 实现 Alert 组件 在 Vue 中实现 Alert 组件可以通过自定义组件或结合第三方库完成。以下是几种常见方法: 自定义 Alert 组件 创建一个可复用的 Alert 组件,通…

vue实现影院

vue实现影院

Vue实现影院功能的基本思路 使用Vue框架开发影院功能需要结合前端组件化开发、状态管理以及后端API交互。以下是关键实现步骤: 影院页面布局设计 影院页面通常分为顶部导航栏、影院列表区域和底部导航…