当前位置:首页 > VUE

vue实现card的单选

2026-01-22 09:28:40VUE

Vue 实现 Card 单选功能

在 Vue 中实现 Card 单选功能可以通过以下方法完成,主要依赖 v-model 和计算属性管理选中状态。

数据绑定与状态管理

定义响应式数据存储当前选中的卡片 ID,使用 v-model 实现双向绑定:

data() {
  return {
    selectedCardId: null,
    cards: [
      { id: 1, title: 'Card 1' },
      { id: 2, title: 'Card 2' }
    ]
  }
}

模板渲染与点击事件

通过 v-for 渲染卡片列表,动态绑定 CSS 类并根据选中状态切换样式:

<template>
  <div class="card-list">
    <div 
      v-for="card in cards" 
      :key="card.id"
      class="card"
      :class="{ 'active': selectedCardId === card.id }"
      @click="selectedCardId = card.id"
    >
      {{ card.title }}
    </div>
  </div>
</template>

样式控制

使用 CSS 高亮选中卡片,增强视觉反馈:

.card {
  border: 1px solid #ddd;
  padding: 16px;
  margin: 8px;
  cursor: pointer;
}
.card.active {
  border-color: #42b983;
  background-color: #f0f9eb;
}

使用计算属性(可选)

如果需要派生状态(如获取选中卡片的完整对象),可添加计算属性:

computed: {
  selectedCard() {
    return this.cards.find(card => card.id === this.selectedCardId)
  }
}

组件化方案(进阶)

对于复杂场景,可将卡片封装为独立组件,通过 props$emit 传递状态:

vue实现card的单选

// CardComponent.vue
props: ['card', 'selected'],
methods: {
  selectCard() {
    this.$emit('select', this.card.id)
  }
}

注意事项

  • 确保 card.id 具有唯一性
  • 移动端可添加 @touchstart 事件提升响应速度
  • 如需初始选中,可在 created 钩子中设置 selectedCardId 默认值

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

相关文章

vue查看更多怎么实现

vue查看更多怎么实现

实现 Vue 的“查看更多”功能 数据截取与显示控制 通过 v-if 或 v-show 控制内容的显示与隐藏。初始状态下只显示部分内容,点击“查看更多”后展开完整内容。 <template&g…

vue实现绑卡的原理

vue实现绑卡的原理

Vue 实现绑卡的原理 Vue 实现绑卡功能通常涉及前端表单处理、数据绑定、验证以及和后端 API 的交互。以下是实现绑卡功能的核心原理和步骤: 数据绑定与表单处理 Vue 通过 v-model 指…

vue实现后退

vue实现后退

Vue 实现后退功能的方法 在 Vue 中实现后退功能通常可以通过以下几种方式完成,具体取决于应用场景和需求。 使用 window.history API 通过原生 JavaScript 的 win…

vue实现接口

vue实现接口

在 Vue 中实现接口请求 Vue 本身不直接提供 HTTP 请求功能,通常需要借助第三方库如 axios 或 fetch 来实现接口请求。以下是几种常见方法: 使用 axios 发送请求 安装 a…

vue实现拖动

vue实现拖动

Vue实现拖动的常用方法 在Vue中实现拖动功能通常需要结合HTML5的拖放API或第三方库。以下是几种常见实现方式: 使用HTML5原生拖放API HTML5提供了原生拖放API,可以通过drag…

vue 分页 实现

vue 分页 实现

Vue 分页实现方法 使用第三方库(如 Element UI) Element UI 提供了现成的分页组件 el-pagination,适合快速集成。 安装 Element UI: npm ins…