当前位置:首页 > VUE

vue实现card的单选

2026-01-22 09:28:40VUE

Vue 实现 Card 单选功能

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

数据绑定与状态管理

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

vue实现card的单选

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 高亮选中卡片,增强视觉反馈:

vue实现card的单选

.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 传递状态:

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

注意事项

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

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

相关文章

vue实现多人视频

vue实现多人视频

实现多人视频通话的Vue方案 使用WebRTC技术结合Vue框架可以构建多人视频通话应用。以下是核心实现方法: 技术栈选择 Vue 2/3作为前端框架 WebRTC用于实时通信 Socket.io…

vue 移动端实现签名

vue 移动端实现签名

Vue 移动端签名实现方法 在移动端实现签名功能,可以通过HTML5的Canvas结合触摸事件完成。以下是具体实现步骤: 使用Canvas绘制签名 安装vue-signature-pad插件或直接使…

vue实现倒计时抢券

vue实现倒计时抢券

Vue 实现倒计时抢券功能 核心逻辑 倒计时抢券功能需要结合时间计算、状态管理和界面交互。通过 Vue 的响应式特性和生命周期钩子,可以高效实现这一需求。 实现步骤 1. 数据准备 在 Vue 组件…

vue实现单点

vue实现单点

Vue 实现单点登录(SSO)方案 单点登录(SSO)允许用户在多个相关但独立的系统中使用同一组凭证登录。以下是基于 Vue 的实现方案: 基于 OAuth2/OpenID Connect 的实现…

vue全选实现

vue全选实现

Vue 全选实现方法 在 Vue 中实现全选功能通常涉及数据绑定和事件处理。以下是几种常见的实现方式: 基础实现方式 <template> <div> <…

vue实现功能

vue实现功能

Vue 功能实现方法 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现常见功能的几种方法: 数据绑定与响应式更新 在 Vue 中,数据绑定通过 v-mode…