结合 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 实现用户信息删除功能 在 Vue 中实现用户信息删除功能通常涉及前端界面交互和后端 API 调用。以下是实现步骤: 前端界面设计 创建删除按钮或操作项,通常使用 @click 事件触发删除操…

vue实现闪烁

vue实现闪烁

Vue实现元素闪烁效果 使用CSS动画实现 通过Vue绑定class结合CSS动画实现闪烁效果,代码简洁且性能较好。 <template> <div :class="{…

vue实现ajax

vue实现ajax

Vue 中实现 AJAX 的几种方法 在 Vue 中实现 AJAX 请求可以通过原生 JavaScript 的 XMLHttpRequest、第三方库如 axios 或 fetch API 来完成。以…

vue for实现

vue for实现

Vue 中的 v-for 指令 v-for 是 Vue.js 中用于渲染列表数据的核心指令,通过遍历数组或对象生成动态内容。 基本语法(数组) <ul> <li v-for="…

mui实现vue

mui实现vue

mui 实现 Vue 的步骤 mui 是一个轻量级的前端框架,常用于移动端开发。结合 Vue 可以实现高效的开发体验。以下是具体实现方法。 安装 mui 和 Vue 通过 npm 或 yarn 安装…

vue实现登录拦截

vue实现登录拦截

实现登录拦截的方法 在Vue项目中,可以通过路由守卫(Navigation Guards)实现登录拦截,确保未登录用户无法访问受保护的路由。以下是具体实现方式: 使用全局前置守卫 在路由配置文件中(…