当前位置:首页 > VUE

vue排他思想实现

2026-01-08 04:28:13VUE

Vue 排他思想实现

排他思想在 Vue 中通常指多个元素中只能有一个被选中或激活的状态。可以通过数据驱动和条件渲染实现。

使用 v-model 和计算属性

定义一个数据属性存储当前选中项的索引或标识,通过 v-model 或事件绑定更新选中状态。

<template>
  <div>
    <button 
      v-for="(item, index) in items" 
      :key="index"
      @click="selectItem(index)"
      :class="{ active: selectedIndex === index }"
    >
      {{ item }}
    </button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: ['选项1', '选项2', '选项3'],
      selectedIndex: -1
    }
  },
  methods: {
    selectItem(index) {
      this.selectedIndex = index
    }
  }
}
</script>

<style>
.active {
  background-color: #42b983;
  color: white;
}
</style>

使用组件状态管理

通过 Vuex 或 Pinia 管理全局状态,实现跨组件排他选择。

// Pinia 示例
import { defineStore } from 'pinia'

export const useSelectionStore = defineStore('selection', {
  state: () => ({
    selectedId: null
  }),
  actions: {
    setSelected(id) {
      this.selectedId = id
    }
  }
})

动态样式绑定

利用 :class:style 动态绑定样式,通过条件判断实现视觉排他效果。

<template>
  <div>
    <div 
      v-for="item in list"
      :class="['item', { 'selected': item.id === activeId }]"
      @click="activeId = item.id"
    >
      {{ item.name }}
    </div>
  </div>
</template>

表单元素排他选择

对于单选按钮组,直接使用 v-model 绑定同一变量即可实现原生排他选择。

vue排他思想实现

<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>
  </div>
</template>

注意事项

  • 确保每次操作后只更新一个选中状态
  • 对于复杂场景,建议使用状态管理工具
  • 列表渲染时需设置唯一 key 保证性能
  • 移动端注意增加点击反馈效果

标签: 思想vue
分享给朋友:

相关文章

vue实现下拉框删除

vue实现下拉框删除

Vue 实现下拉框删除功能 在Vue中实现下拉框的删除功能通常涉及以下步骤: 数据绑定与渲染 在Vue组件中定义数据数组用于存储下拉框选项: data() { return { op…

vue 实现豆瓣

vue 实现豆瓣

以下是基于 Vue 实现豆瓣电影类功能的实现方案,涵盖核心模块和技术要点: 数据获取与 API 调用 使用豆瓣开放 API(需注意调用频率限制)或第三方代理接口 推荐 axios 进行异步请求,配合…

vue实现批量

vue实现批量

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

vue实现逻辑

vue实现逻辑

Vue 实现逻辑的核心概念 Vue.js 是一个渐进式 JavaScript 框架,其核心逻辑围绕数据驱动和组件化开发。通过响应式系统、虚拟 DOM 和组件生命周期等机制,Vue 实现了高效的前端开发…

vue 实现视频

vue 实现视频

Vue 实现视频播放功能 使用 Vue 实现视频播放功能可以通过 HTML5 的 <video> 标签或第三方库(如 video.js)来实现。以下是两种常见的方法: 使用 HTML5…

vue实现ios

vue实现ios

Vue 实现 iOS 风格应用 使用 Vue 实现 iOS 风格的应用,可以通过结合 UI 框架和自定义样式来达成目标。以下是具体方法和步骤: 选择 iOS 风格的 UI 框架 Vue 生态中有多…