结合 Vue 的数据绑定功能来完成。以下是几种常见的实现方式: 使…">
当前位置:首页 > VUE

vue 实现单选框

2026-02-24 13:20:28VUE

Vue 实现单选框的方法

在 Vue 中实现单选框可以通过原生 HTML 的 <input type="radio"> 结合 Vue 的数据绑定功能来完成。以下是几种常见的实现方式:

使用 v-model 绑定数据

通过 v-model 将单选框的值绑定到 Vue 实例的数据属性上,实现双向数据绑定。

vue 实现单选框

<template>
  <div>
    <label>
      <input type="radio" v-model="selectedOption" value="option1">
      Option 1
    </label>
    <label>
      <input type="radio" v-model="selectedOption" value="option2">
      Option 2
    </label>
    <p>Selected option: {{ selectedOption }}</p>
  </div>
</template>

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

动态生成单选框

如果需要根据数据动态生成单选框,可以使用 v-for 指令。

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

<script>
export default {
  data() {
    return {
      selectedOption: '',
      options: [
        { value: 'option1', label: 'Option 1' },
        { value: 'option2', label: 'Option 2' }
      ]
    }
  }
}
</script>

使用组件封装单选框

为了复用和更好的代码组织,可以封装一个单选框组件。

vue 实现单选框

<template>
  <div>
    <RadioButton 
      v-model="selectedOption" 
      value="option1" 
      label="Option 1" 
    />
    <RadioButton 
      v-model="selectedOption" 
      value="option2" 
      label="Option 2" 
    />
    <p>Selected option: {{ selectedOption }}</p>
  </div>
</template>

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

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

RadioButton.vue 组件的内容:

<template>
  <label>
    <input 
      type="radio" 
      :value="value" 
      :checked="modelValue === value"
      @change="$emit('update:modelValue', value)"
    >
    {{ label }}
  </label>
</template>

<script>
export default {
  props: {
    modelValue: {
      type: String,
      default: ''
    },
    value: {
      type: String,
      required: true
    },
    label: {
      type: String,
      required: true
    }
  }
}
</script>

处理单选框组

如果需要处理单选框组,可以将多个单选框绑定到同一个 v-model 上。

<template>
  <div>
    <h3>Choose a fruit:</h3>
    <label>
      <input type="radio" v-model="fruit" value="apple">
      Apple
    </label>
    <label>
      <input type="radio" v-model="fruit" value="banana">
      Banana
    </label>
    <label>
      <input type="radio" v-model="fruit" value="orange">
      Orange
    </label>
    <p>Selected fruit: {{ fruit }}</p>
  </div>
</template>

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

注意事项

  • 确保每个单选框的 value 属性是唯一的,避免冲突。
  • 使用 v-model 时,初始值应与单选框的 value 匹配,否则默认不会选中任何选项。
  • 如果需要默认选中某个选项,可以在 data 中设置初始值。

通过以上方法,可以灵活地在 Vue 中实现单选框功能。

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

相关文章

vue设计与实现 书

vue设计与实现 书

vue设计与实现 书 《Vue.js设计与实现》是一本深入探讨Vue.js框架内部原理和设计思想的书籍,适合希望深入理解Vue.js的开发者。以下是关于这本书的详细信息: 书籍内容 《Vue.js设…

vue实现菜单栏锚点

vue实现菜单栏锚点

实现锚点菜单的基本思路 在Vue中实现菜单栏锚点功能,主要涉及两个方面:创建可跳转的锚点位置,以及菜单项的点击滚动控制。通过监听滚动事件可以高亮当前可见区域的对应菜单项。 创建页面锚点位置 在需要跳…

vue实现计时

vue实现计时

Vue 实现计时功能 在 Vue 中实现计时功能可以通过多种方式完成,以下是几种常见的方法: 使用 setInterval 实现基础计时器 通过 setInterval 和 clearInterva…

vue实现删除

vue实现删除

Vue 实现删除功能的方法 在 Vue 中实现删除功能通常涉及以下几个步骤: 数据绑定与列表渲染 使用 v-for 指令渲染列表数据,并为每个项绑定唯一标识符(如 id)。例如: <…

vue实现mvvm

vue实现mvvm

Vue 实现 MVVM 模式 MVVM(Model-View-ViewModel)是一种前端架构模式,Vue 是其典型实现之一。MVVM 的核心是通过数据绑定和响应式系统实现视图与数据的自动同步。…

vue实现分站

vue实现分站

Vue 实现分站的方案 在 Vue 中实现分站功能通常涉及路由配置、环境变量管理和动态加载资源。以下是几种常见的实现方式: 基于路由的分站实现 通过 Vue Router 配置多路由,区分不同站点的…