当前位置:首页 > VUE

vue实现card的单选

2026-02-23 00:27:34VUE

实现 Vue Card 单选功能

在 Vue 中实现 Card 单选功能可以通过以下方式完成,这里以 Vue 3 的 Composition API 为例。

数据绑定与状态管理

使用 refreactive 创建响应式数据存储当前选中的卡片 ID,并通过 v-model:class 动态绑定选中状态。

<script setup>
import { ref } from 'vue';

const cards = [
  { id: 1, title: 'Card 1' },
  { id: 2, title: 'Card 2' },
  { id: 3, title: 'Card 3' }
];
const selectedCardId = ref(null);

const selectCard = (id) => {
  selectedCardId.value = id;
};
</script>

模板渲染与交互

通过 v-for 渲染卡片列表,根据 selectedCardId 动态添加选中样式,并通过 @click 触发选择逻辑。

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

样式控制

通过 CSS 定义卡片的基础样式和选中状态的高亮效果。

<style scoped>
.card {
  border: 1px solid #ddd;
  padding: 20px;
  margin: 10px;
  cursor: pointer;
  transition: all 0.3s;
}

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

使用单选框的替代方案

如果需要更严格的表单行为,可以用 <input type="radio"> 结合透明化样式实现。

vue实现card的单选

<template>
  <div class="radio-card-group">
    <label 
      v-for="card in cards" 
      :key="card.id"
      class="radio-card"
    >
      <input 
        type="radio" 
        :value="card.id"
        v-model="selectedCardId"
        hidden
      >
      <div class="card-content">
        {{ card.title }}
      </div>
    </label>
  </div>
</template>

注意事项

  • 如果卡片内容复杂,建议将卡片封装为独立组件,通过 emits 传递选中事件。
  • 对于大量卡片,考虑使用 v-show 替代 v-if 避免频繁 DOM 操作。
  • 单选逻辑也可通过计算属性实现验证,例如限制必须选择一项。

以上方法可根据实际项目需求调整,核心是通过响应式数据驱动视图更新,实现单选交互效果。

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

相关文章

vue 页签实现

vue 页签实现

Vue 页签实现方法 在 Vue 中实现页签功能通常涉及动态组件、路由或状态管理。以下是几种常见的实现方式: 使用动态组件 通过 Vue 的 <component> 动态组件结合 v-f…

vue实现盖章

vue实现盖章

Vue 实现盖章功能 在Vue中实现盖章功能通常涉及前端UI交互,通过Canvas或SVG绘制印章,并允许用户拖拽或点击放置印章。以下是具体实现方法: 使用Canvas绘制印章 通过HTML5的Ca…

vue实现返回

vue实现返回

返回按钮功能实现 在Vue中实现返回功能通常有两种方式:使用浏览器历史记录的history.back()或结合Vue Router进行编程式导航。以下是具体实现方法: 使用浏览器API metho…

vue实现pc

vue实现pc

Vue 实现 PC 端应用开发 Vue.js 是一个流行的前端框架,适用于构建 PC 端 Web 应用。以下是关键步骤和最佳实践: 项目初始化 使用 Vue CLI 或 Vite 创建项目:…

vue实现 treegrid

vue实现 treegrid

Vue 实现 TreeGrid 的方法 使用现成组件库 Element UI、Ant Design Vue 等流行组件库提供了现成的 TreeTable/TreeGrid 组件,可直接使用。 Ele…

vue实现 弹窗

vue实现 弹窗

Vue 实现弹窗的基本方法 使用 Vue 实现弹窗可以通过多种方式,包括组件化、指令、插件等。以下是几种常见的实现方法。 组件化实现弹窗 创建一个独立的弹窗组件,通过 props 控制显示与隐藏。…