当前位置:首页 > VUE

vue 实现组单选

2026-02-17 03:18:38VUE

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

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

vue 实现组单选

<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

vue 实现组单选

<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>

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

<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 实现冰墩墩动画 通过 Vue 的动画特性和 SVG 技术,可以动态渲染冰墩墩的形象。以下是具体实现方法: 准备 SVG 素材 冰墩墩的形象通常由多个 SVG 路径组成,包括身体轮廓、面…

vue实现a4打印模板

vue实现a4打印模板

使用Vue实现A4打印模板 在Vue中实现A4打印模板需要结合CSS的打印样式和Vue的模板渲染能力。以下是具体实现方法: 设置A4纸张尺寸 在CSS中定义A4纸张的标准尺寸(210mm × 297…

vue 实现复选

vue 实现复选

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

实现 vue ssr

实现 vue ssr

Vue SSR 实现方法 Vue SSR(Server-Side Rendering)通过服务器端渲染 Vue 应用,提升首屏加载速度和 SEO 友好性。以下是核心实现方法: 基础配置 安装必要依赖…

vue广告实现

vue广告实现

Vue 广告实现方法 在 Vue 项目中实现广告功能可以通过多种方式完成,具体取决于广告类型和需求。以下是几种常见的实现方法: 使用第三方广告平台 许多广告平台如 Google AdSense、百…

vue实现tag

vue实现tag

Vue 实现标签(Tag)功能 在 Vue 中实现标签(Tag)功能可以通过多种方式完成,以下是一些常见的方法和实现步骤: 使用动态组件和 v-for 通过 v-for 指令动态渲染标签列表,结合样…