当前位置:首页 > VUE

vue实现双列商品卡片

2026-01-21 18:39:46VUE

Vue 实现双列商品卡片

使用 Vue 实现双列商品卡片可以通过 flex 布局或 grid 布局实现,以下是两种常见方法:

方法一:使用 Flex 布局

<template>
  <div class="product-list">
    <div v-for="product in products" :key="product.id" class="product-card">
      <img :src="product.image" :alt="product.name" />
      <h3>{{ product.name }}</h3>
      <p>{{ product.price }}</p>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      products: [
        { id: 1, name: '商品1', price: '¥100', image: 'image1.jpg' },
        { id: 2, name: '商品2', price: '¥200', image: 'image2.jpg' },
        // 更多商品数据...
      ]
    }
  }
}
</script>

<style>
.product-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px; /* 可选,卡片间距 */
}

.product-card {
  width: calc(50% - 5px); /* 减去间距的一半 */
  border: 1px solid #eee;
  padding: 10px;
  box-sizing: border-box;
}
</style>

方法二:使用 Grid 布局

<template>
  <div class="product-grid">
    <div v-for="product in products" :key="product.id" class="product-card">
      <img :src="product.image" :alt="product.name" />
      <h3>{{ product.name }}</h3>
      <p>{{ product.price }}</p>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      products: [
        { id: 1, name: '商品1', price: '¥100', image: 'image1.jpg' },
        { id: 2, name: '商品2', price: '¥200', image: 'image2.jpg' },
        // 更多商品数据...
      ]
    }
  }
}
</script>

<style>
.product-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px; /* 卡片间距 */
}

.product-card {
  border: 1px solid #eee;
  padding: 10px;
}
</style>

响应式调整

如果需要在小屏幕设备上显示单列,可以添加媒体查询:

@media (max-width: 600px) {
  .product-list {
    flex-direction: column;
  }
  .product-card {
    width: 100%;
  }

  /* 或针对 Grid 布局 */
  .product-grid {
    grid-template-columns: 1fr;
  }
}

动态加载数据

如果商品数据是通过 API 获取的,可以使用 axiosfetch

export default {
  data() {
    return {
      products: []
    }
  },
  async created() {
    try {
      const response = await axios.get('/api/products');
      this.products = response.data;
    } catch (error) {
      console.error('获取商品数据失败:', error);
    }
  }
}

以上方法均可实现双列商品卡片布局,根据项目需求选择合适的方式。

vue实现双列商品卡片

标签: 卡片商品
分享给朋友:

相关文章

vue实现商品

vue实现商品

Vue实现商品功能的方法 在Vue中实现商品功能通常涉及商品列表展示、商品详情、购物车操作等模块。以下是几种常见的实现方式: 商品列表展示 使用v-for指令循环渲染商品数据,结合Vue的响应式特性…

vue实现弹出卡片

vue实现弹出卡片

Vue 实现弹出卡片的方法 使用 v-if 或 v-show 控制显示 通过 Vue 的指令 v-if 或 v-show 可以控制弹出卡片的显示和隐藏。v-if 会动态添加或移除 DOM 元素,而 v…

vue实现商品全选

vue实现商品全选

实现全选功能的基本思路 在Vue中实现商品全选功能,通常需要维护一个商品列表数据和一个选中状态数组。通过计算属性判断是否全选,通过方法控制全选或取消全选。 定义数据模型 data() {…

vue实现商品排序

vue实现商品排序

实现商品排序功能 在Vue中实现商品排序功能可以通过计算属性或方法对数据进行处理。以下是一个完整的实现方案,包含价格、销量和综合排序三种常见方式。 数据准备 假设商品数据存储在goodsList数组…

vue 实现商品页面

vue 实现商品页面

实现商品页面的基本步骤 使用Vue.js实现商品页面需要结合组件化开发、数据绑定和路由等功能。以下是一个典型实现方案: 商品数据管理 商品数据通常存储在Vuex或Pinia状态管理中,也可以通过AP…

vue实现探探卡片

vue实现探探卡片

Vue 实现探探卡片效果 探探卡片的交互效果主要包括卡片堆叠、左右滑动、缩放和旋转动画。以下是基于 Vue 3 的实现方法: 核心组件结构 使用 v-for 渲染卡片列表,通过 CSS 绝对定位实…