当前位置:首页 > 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 状态管理实现方法 使用 Vuex(官方推荐) Vuex 是 Vue 的官方状态管理库,适合中大型应用。 安装 Vuex: npm install vuex --save 创建 Store 示…

jq 实现 vue

jq 实现 vue

jq 实现 Vue 的核心功能 jq 是一个轻量级的 JavaScript 库,主要用于 DOM 操作和事件处理。虽然它不能完全替代 Vue,但可以通过一些技巧模拟 Vue 的核心功能,如数据绑定、事…

vue实现删除

vue实现删除

Vue 实现删除功能的方法 在 Vue 中实现删除功能通常涉及以下几个步骤: 数据绑定与列表渲染 使用 v-for 指令渲染列表数据,并为每个项绑定唯一标识符(如 id)。例如: <…

vue实现ajax

vue实现ajax

Vue 中实现 AJAX 的几种方法 在 Vue 中实现 AJAX 请求可以通过原生 JavaScript 的 XMLHttpRequest、第三方库如 axios 或 fetch API 来完成。以…

vue 实现遮罩

vue 实现遮罩

Vue 实现遮罩层的方法 使用固定定位和透明背景 在Vue中实现遮罩层可以通过CSS固定定位结合透明背景色完成。创建一个全屏遮罩组件,利用position: fixed覆盖整个视窗。 <tem…

vue指令实现

vue指令实现

Vue 指令的实现方式 Vue 指令是特殊的标记,用于在 DOM 元素上应用特定的行为。可以通过全局或局部方式注册自定义指令。 全局注册指令 在 Vue 应用中通过 Vue.directive 方法…