结合 Vue 的数据绑定,或使用第三方 U…">
当前位置:首页 > VUE

vue实现 单选

2026-01-13 00:50:31VUE

实现 Vue 单选功能

在 Vue 中实现单选功能可以通过多种方式完成,常见的有使用原生 HTML 的 <input type="radio"> 结合 Vue 的数据绑定,或使用第三方 UI 库如 Element UI、Ant Design Vue 等。

使用原生 HTML 实现

通过 v-model 绑定单选按钮的值,确保同一组单选按钮的 name 属性相同。

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

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

使用 Element UI 实现

如果项目中使用 Element UI,可以通过 <el-radio><el-radio-group> 快速实现单选功能。

<template>
  <div>
    <el-radio-group v-model="selectedOption">
      <el-radio label="option1">Option 1</el-radio>
      <el-radio label="option2">Option 2</el-radio>
      <el-radio label="option3">Option 3</el-radio>
    </el-radio-group>
    <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" name="dynamicOptions">
      {{ 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' },
        { value: 'option3', label: 'Option 3' }
      ]
    };
  }
};
</script>

自定义样式单选按钮

通过 CSS 隐藏原生单选按钮,自定义样式实现更美观的视觉效果。

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

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

<style>
.custom-radio input[type="radio"] {
  display: none;
}
.custom-radio label {
  display: inline-block;
  padding: 8px 16px;
  background: #f0f0f0;
  border-radius: 4px;
  cursor: pointer;
}
.custom-radio input[type="radio"]:checked + label {
  background: #409eff;
  color: white;
}
</style>

注意事项

  • 同一组单选按钮的 name 属性必须相同,否则无法实现互斥效果。
  • 使用 v-model 时,确保绑定的数据是响应式的。
  • 动态生成选项时,为每个选项设置唯一的 key 以提高性能。

vue实现 单选

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

相关文章

vue实现视频开场

vue实现视频开场

使用 Vue 实现视频开场动画 在 Vue 中实现视频开场动画可以通过结合 HTML5 的 <video> 标签和 Vue 的过渡效果或生命周期钩子来完成。以下是具体实现方法: 安装依…

vue实现多级弹窗

vue实现多级弹窗

Vue 多级弹窗实现方法 方法一:使用动态组件与递归组件 在 Vue 中可以通过动态组件配合递归组件实现多级弹窗。定义一个基础弹窗组件,通过递归调用自身实现层级嵌套。 基础弹窗组件模板示例:…

vue实现tab换行

vue实现tab换行

Vue实现Tab切换的常见方法 使用Vue实现Tab切换功能可以通过多种方式完成,以下是几种常见的方法: 动态组件结合v-if或v-show 通过v-if或v-show控制不同Tab内容的显示与隐…

拖拽式编程vue实现

拖拽式编程vue实现

拖拽式编程在 Vue 中的实现方法 使用 HTML5 原生拖放 API Vue 可以结合 HTML5 的拖放 API 实现基础拖拽功能。通过 draggable 属性标记可拖拽元素,监听 dragst…

vue实现压缩上传文件

vue实现压缩上传文件

压缩上传文件的实现方法 在Vue中实现文件压缩和上传功能,可以通过以下步骤完成。该方法结合了前端文件压缩库和HTTP请求,确保文件在上传前被有效压缩。 安装必要的依赖 需要使用compressor…

vue如何实现到期提醒

vue如何实现到期提醒

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