当前位置:首页 > 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实现图片搜索功能 使用HTML5的File API获取图片 通过<input type="file">元素让用户选择图片文件,使用FileReader对象读取图片数据。 <…

vue实现活动倒计时

vue实现活动倒计时

实现活动倒计时的基本思路 在Vue中实现活动倒计时通常需要获取当前时间与活动结束时间的差值,并将其转换为天、小时、分钟、秒的格式展示。通过定时器每秒更新显示的时间。 定义倒计时数据 在Vue组件的…

vue实现绑卡的原理

vue实现绑卡的原理

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

vue前端实现下载进度

vue前端实现下载进度

实现下载进度条的基本思路 在Vue中实现下载进度条,通常需要结合XMLHttpRequest或Fetch API来监听下载进度事件。通过计算已下载数据与总数据的比例,动态更新进度条的显示。 使用XM…

vue实现语音

vue实现语音

Vue 实现语音功能的方法 使用 Web Speech API Vue 可以结合 Web Speech API 实现语音识别和合成功能。Web Speech API 包含 SpeechRecognit…

vue实现报表

vue实现报表

vue实现报表的方法 使用Vue实现报表通常需要结合图表库或表格组件。以下是几种常见方法: 使用ECharts 安装ECharts库: npm install echarts vue-echart…