当前位置:首页 > 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>

使用组件库的单选组

vue 实现组单选

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

自定义单选组组件

vue 实现组单选

封装可复用的单选组组件,通过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>

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

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

<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实现visual

vue实现visual

Vue 实现可视化(Visual)的常见方法 在 Vue 中实现可视化通常涉及数据可视化库的集成,以下是几种主流方案: 使用 ECharts ECharts 是一个强大的 JavaScript 图表…

vue实现帖子

vue实现帖子

Vue 实现帖子功能 使用 Vue 实现帖子功能需要结合前端框架和后端数据交互,以下是实现的关键步骤和代码示例。 帖子列表展示 创建帖子列表组件,使用 v-for 渲染帖子数据,通过 axios 获…

vue实现图集

vue实现图集

Vue 实现图集的方法 在 Vue 中实现图集功能可以通过多种方式完成,以下是一些常见的方法和实现步骤。 使用第三方库(如 vue-image-lightbox) 安装 vue-image-ligh…

vue实现公式

vue实现公式

在Vue中实现公式展示或计算可以通过多种方式实现,以下为具体方法: 使用模板插值与计算属性 若公式较简单,可直接在模板中使用插值表达式或计算属性。例如计算圆的面积: <templat…

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

vue实现公告

vue实现公告

Vue 实现公告功能的方法 公告功能通常需要实现滚动展示、自动切换或固定显示的效果。以下是几种常见的实现方式: 使用 marquee 标签实现滚动公告 <template> &l…