当前位置:首页 > VUE

vue 实现单选

2026-03-27 14:04:41VUE

Vue 实现单选功能

在 Vue 中实现单选功能通常可以通过 v-model 绑定数据和 inputradio 元素结合实现。以下是几种常见的方法:

使用原生 radio 输入

通过 v-model 绑定一个变量,将多个 radiovalue 属性设置为不同的值,当用户选择时,绑定的变量会自动更新为当前选中的 value

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>

使用组件库的单选组件

许多 UI 组件库(如 Element UI、Ant Design Vue)提供了封装好的单选组件,使用方式更简洁。

以 Element UI 为例:

vue 实现单选

<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>

自定义单选组件

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

<template>
  <div>
    <div 
      v-for="option in options" 
      :key="option.value"
      @click="selectOption(option.value)"
      :class="{ active: selectedOption === option.value }"
    >
      {{ option.label }}
    </div>
    <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' }
      ]
    };
  },
  methods: {
    selectOption(value) {
      this.selectedOption = value;
    }
  }
};
</script>

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

动态生成单选选项

如果选项是动态的,可以通过 v-for 动态渲染单选按钮。

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

<script>
export default {
  data() {
    return {
      selectedOption: '',
      dynamicOptions: [
        { id: 1, name: 'Dynamic Option 1' },
        { id: 2, name: 'Dynamic Option 2' },
        { id: 3, name: 'Dynamic Option 3' }
      ]
    };
  }
};
</script>

以上方法可以根据实际需求选择使用,原生 radio 适合简单场景,组件库提供更丰富的功能,而自定义组件则适合高度定制化的需求。

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

相关文章

vue自己实现下拉导航

vue自己实现下拉导航

实现下拉导航的基本思路 在Vue中实现下拉导航,可以通过结合Vue的响应式数据和事件绑定特性来完成。主要思路是利用v-show或v-if控制下拉菜单的显示与隐藏,并通过鼠标事件或点击事件触发状态变化。…

vue实现框架

vue实现框架

Vue 框架实现的核心方法 基础项目搭建 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 适合传统项目,Vite 更适合现代轻量级应用。安装后通过命令行工具选择所需配置(如 Rou…

vue实现树

vue实现树

Vue 实现树形结构的方法 使用递归组件实现树形结构 递归组件是Vue中实现树形结构的常见方式。通过组件调用自身,可以轻松构建多层嵌套的树形数据。 <template> <ul…

vue实现刷卡

vue实现刷卡

Vue 实现刷卡效果 在 Vue 中实现刷卡效果可以通过 CSS 动画和 Vue 的过渡系统结合完成。以下是一种常见的实现方式: 基础实现方法 安装 Vue 过渡依赖(如果尚未安装): npm i…

vue实现分站

vue实现分站

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

vue实现打印

vue实现打印

使用Vue实现打印功能 在Vue项目中实现打印功能可以通过多种方式完成,以下是几种常见的方法: 方法一:使用window.print() 这种方法适用于打印整个页面或特定区域的内容。 // 在Vu…