当前位置:首页 > VUE

vue 实现组单选

2026-03-29 02:18:42VUE

Vue 实现单选组

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

使用原生HTML单选按钮结合v-model

通过v-model绑定同一个变量实现单选效果,选中时变量值为对应单选按钮的value值。

<template>
  <div>
    <input type="radio" id="option1" value="1" v-model="selectedOption">
    <label for="option1">选项1</label>

    <input type="radio" id="option2" value="2" v-model="selectedOption">
    <label for="option2">选项2</label>

    <input type="radio" id="option3" value="3" v-model="selectedOption">
    <label for="option3">选项3</label>
  </div>
</template>

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

使用组件库的单选组

如Element UI、Ant Design Vue等组件库提供现成的单选组组件。

<template>
  <el-radio-group v-model="selectedOption">
    <el-radio label="1">选项1</el-radio>
    <el-radio label="2">选项2</el-radio>
    <el-radio label="3">选项3</el-radio>
  </el-radio-group>
</template>

自定义单选组组件

封装可复用的单选组组件,通过v-model实现双向绑定。

<template>
  <div class="radio-group">
    <div 
      v-for="option in options" 
      :key="option.value"
      class="radio-option"
      :class="{ 'active': modelValue === option.value }"
      @click="$emit('update:modelValue', option.value)"
    >
      {{ option.label }}
    </div>
  </div>
</template>

<script>
export default {
  props: {
    options: {
      type: Array,
      required: true
    },
    modelValue: {
      type: [String, Number],
      required: true
    }
  },
  emits: ['update:modelValue']
}
</script>

<style>
.radio-option {
  padding: 8px 16px;
  border: 1px solid #ddd;
  cursor: pointer;
}
.radio-option.active {
  background-color: #409eff;
  color: white;
}
</style>

使用计算属性处理单选逻辑

当需要处理更复杂的单选逻辑时,可以结合计算属性实现。

vue 实现组单选

<template>
  <div>
    <div 
      v-for="item in items" 
      :key="item.id"
      @click="selectItem(item)"
      :class="{ 'selected': selectedItemId === item.id }"
    >
      {{ item.name }}
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: '选项A' },
        { id: 2, name: '选项B' },
        { id: 3, name: '选项C' }
      ],
      selectedItemId: null
    }
  },
  methods: {
    selectItem(item) {
      this.selectedItemId = item.id
    }
  }
}
</script>

以上方法均可实现单选功能,根据项目需求选择合适的实现方式。组件库提供的单选组通常包含更多样式和功能,适合快速开发;自定义组件则更灵活,可根据具体需求定制。

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

相关文章

vue架构实现

vue架构实现

Vue 架构实现核心方案 Vue.js 的架构实现通常围绕模块化、组件化和状态管理展开。以下为常见实现方案: 基于单文件组件(SFC)的模块化 通过 .vue 文件组织模板、脚本和样式: <…

vue实现setinterval

vue实现setinterval

在 Vue 中使用 setInterval Vue 中可以通过生命周期钩子和方法结合 setInterval 实现定时任务。以下是一个完整的实现示例: <template> <…

computed vue 实现

computed vue 实现

computed 在 Vue 中的基本用法 Vue 的 computed 属性用于声明依赖于其他数据的计算属性。当依赖的数据变化时,计算属性会自动重新计算并缓存结果。 export defaul…

vue 简单实现

vue 简单实现

以下是 Vue 的简单实现示例,涵盖基础模板、数据绑定、方法及生命周期: 基础模板与数据绑定 <div id="app"> <p>{{ message }}</p&…

vue实现 hover

vue实现 hover

实现 Vue 中的 hover 效果 在 Vue 中实现 hover 效果可以通过多种方式完成,以下是常见的几种方法: 使用 CSS 伪类 最简单的方式是直接使用 CSS 的 :hover 伪类,无…

vue实现筛选

vue实现筛选

实现筛选功能的基本思路 在Vue中实现筛选功能通常需要结合数据绑定、计算属性和方法。筛选的核心逻辑是根据用户输入的条件过滤原始数据列表,并动态更新显示结果。 数据准备 定义一个数组存储原始数据,另一…