当前位置:首页 > VUE

vue实现单选

2026-02-25 15:09:30VUE

Vue 实现单选功能

在 Vue 中实现单选功能可以通过多种方式完成,以下是一些常见的方法:

使用 v-model 绑定单选按钮

通过 v-model 绑定一个响应式变量,可以实现单选功能。单选按钮的 value 属性决定了选中时的值。

<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>
    <label>
      <input type="radio" v-model="selectedOption" value="option3" />
      Option 3
    </label>
    <p>Selected option: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: null,
    };
  },
};
</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: null,
      options: [
        { value: "option1", label: "Option 1" },
        { value: "option2", label: "Option 2" },
        { value: "option3", label: "Option 3" },
      ],
    };
  },
};
</script>

使用组件封装单选功能

可以将单选功能封装为一个可复用的组件,提高代码的可维护性。

<template>
  <div>
    <RadioGroup v-model="selectedOption" :options="options" />
    <p>Selected option: {{ selectedOption }}</p>
  </div>
</template>

<script>
import RadioGroup from "./RadioGroup.vue";

export default {
  components: {
    RadioGroup,
  },
  data() {
    return {
      selectedOption: null,
      options: [
        { value: "option1", label: "Option 1" },
        { value: "option2", label: "Option 2" },
        { value: "option3", label: "Option 3" },
      ],
    };
  },
};
</script>

RadioGroup.vue 组件的实现:

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

<script>
export default {
  props: {
    value: {
      type: String,
      default: null,
    },
    options: {
      type: Array,
      required: true,
    },
  },
  computed: {
    selectedValue: {
      get() {
        return this.value;
      },
      set(newValue) {
        this.$emit("input", newValue);
      },
    },
  },
};
</script>

使用第三方库

如果需要更复杂的功能,可以使用第三方库如 vue-radioelement-ui 的单选组件。

vue实现单选

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

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

注意事项

  • 确保单选按钮的 value 属性是唯一的,避免冲突。
  • 使用 v-model 时,绑定的变量初始值可以是 null 或默认选中项的 value
  • 动态生成单选按钮时,为每个选项添加唯一的 key 属性以提高性能。

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

相关文章

antd vue 实现

antd vue 实现

使用 Ant Design Vue 实现功能 Ant Design Vue 是基于 Vue.js 的 UI 组件库,提供了丰富的组件和设计规范。以下是一些常见功能的实现方法。 安装 Ant Desi…

vue实现弹幕

vue实现弹幕

Vue 实现弹幕功能 弹幕功能通常包括动态生成、滚动显示、颜色和速度随机化等特性。以下是基于 Vue 3 的实现方法。 核心思路 使用 CSS 动画控制弹幕从右向左滚动。 动态生成弹幕数据,随机设置…

vue实现keepalive

vue实现keepalive

Vue 中实现 keep-alive 在 Vue 中,keep-alive 是一个内置组件,用于缓存动态组件或组件的状态,避免重复渲染和销毁。以下是实现 keep-alive 的几种方法: 基本用法…

vue实现图片预览

vue实现图片预览

Vue 实现图片预览的方法 使用 Element UI 的 el-image 组件 Element UI 提供了 el-image 组件,支持图片预览功能。通过设置 preview-src-list…

vue实现自动滚动

vue实现自动滚动

实现自动滚动的方法 在Vue中实现自动滚动可以通过多种方式完成,以下是几种常见的方法: 使用scrollTo或scrollBy方法 通过JavaScript的scrollTo或scrollBy方法…

vue实现前端排序

vue实现前端排序

Vue 实现前端排序的方法 使用 Array.prototype.sort() 方法 Vue 中可以利用 JavaScript 原生的 sort() 方法对数组进行排序。在计算属性或方法中处理数据后,…