结合 v-model,或借助第三方 UI 库(如 Elem…">
当前位置:首页 > VUE

vue实现 单选

2026-02-10 08:08:24VUE

Vue 实现单选功能

在 Vue 中实现单选功能可以通过多种方式完成,常见的有使用原生 <input type="radio"> 结合 v-model,或借助第三方 UI 库(如 Element UI、Ant Design Vue 等)。以下是几种实现方法:

使用原生 HTML 和 v-model

通过原生 <input type="radio"> 绑定 v-model 实现数据双向绑定。

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>
    <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: '',
    };
  },
};
</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' },
        { value: 'option3', label: 'Option 3' },
      ],
    };
  },
};
</script>

使用 Element UI 的单选组件

如果项目中使用了 Element UI,可以直接使用 <el-radio> 组件。

vue实现 单选

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

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

使用 Ant Design Vue 的单选组件

如果项目中使用了 Ant Design Vue,可以使用 <a-radio> 组件。

<template>
  <div>
    <a-radio-group v-model="selectedOption">
      <a-radio value="option1">Option 1</a-radio>
      <a-radio value="option2">Option 2</a-radio>
      <a-radio value="option3">Option 3</a-radio>
    </a-radio-group>
    <p>Selected option: {{ selectedOption }}</p>
  </div>
</template>

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

自定义单选组件

如果需要更灵活的单选功能,可以封装一个自定义单选组件。

<template>
  <div>
    <div
      v-for="option in options"
      :key="option.value"
      @click="selectOption(option.value)"
      :class="{ active: selectedOption === option.value }"
    >
      {{ option.label }}
    </div>
  </div>
</template>

<script>
export default {
  props: {
    options: {
      type: Array,
      required: true,
    },
    value: {
      type: String,
      default: '',
    },
  },
  data() {
    return {
      selectedOption: this.value,
    };
  },
  methods: {
    selectOption(value) {
      this.selectedOption = value;
      this.$emit('input', value);
    },
  },
  watch: {
    value(newVal) {
      this.selectedOption = newVal;
    },
  },
};
</script>

<style scoped>
.active {
  background-color: #f0f0f0;
}
</style>

注意事项

  • 使用 v-model 时,确保绑定的数据是响应式的。
  • 动态渲染选项时,为每个选项设置唯一的 key
  • 使用第三方 UI 库时,注意组件的 API 和事件绑定方式。
  • 自定义组件时,可以通过 propsemit 实现父子组件通信。

以上方法可以根据项目需求选择适合的实现方式。

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

相关文章

vue实现画圆弧并着色

vue实现画圆弧并着色

在 Vue 中实现画圆弧并着色 使用 Canvas API 绘制圆弧 在 Vue 组件的 mounted 钩子中,通过 Canvas API 绘制圆弧。创建一个 canvas 元素并获取其上下文:…

vue交互实现

vue交互实现

Vue 交互实现方法 Vue.js 提供了多种方式实现用户交互,包括事件处理、表单绑定、动态渲染等。以下是常见的交互实现方法: 事件处理 通过 v-on 或 @ 指令绑定事件,触发方法或直接执行表达…

vue实现登出

vue实现登出

实现Vue登出功能 登出功能通常涉及清除用户会话、令牌或本地存储的数据,并重定向到登录页面。以下是几种常见的实现方式: 清除用户令牌和状态 在Vuex的store中定义一个logout mutati…

vue实现抖动

vue实现抖动

Vue 实现抖动效果 在 Vue 中实现抖动效果可以通过 CSS 动画或 JavaScript 动画库来实现。以下是几种常见的方法: 使用 CSS 动画 通过定义 @keyframes 动画并在 V…

vue实现链接

vue实现链接

Vue 实现链接的方法 在 Vue 中实现链接可以通过多种方式,包括使用 <router-link>、<a> 标签或编程式导航。以下是几种常见的方法: 使用 <rout…

vue实现音乐

vue实现音乐

Vue实现音乐播放功能 使用Vue实现音乐播放功能可以通过多种方式完成,以下是几种常见的实现方法: 使用HTML5 Audio API 在Vue组件中直接使用HTML5的Audio对象来控制音乐播放…