当前位置:首页 > 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中实现商品切换功能通常涉及数据绑定、事件处理和动态渲染。以下是几种常见方法: 数据驱动切换 创建商品数据数组和当前索引,通过修改索引实现切换: data() { re…

vue实现卡片列表

vue实现卡片列表

Vue 实现卡片列表 使用 v-for 动态渲染卡片列表 通过 Vue 的 v-for 指令可以动态渲染卡片列表,数据通常存储在组件的 data 或通过 API 获取。 <template&g…

vue 实现商品列表

vue 实现商品列表

实现商品列表的基本结构 在Vue中实现商品列表,通常需要创建一个组件来展示商品数据。可以使用v-for指令循环渲染商品列表,并通过数据绑定动态显示商品信息。 <template> &…

vue实现动态卡片

vue实现动态卡片

实现动态卡片的基本思路 在Vue中实现动态卡片通常涉及数据绑定、循环渲染和交互逻辑。动态卡片的内容、样式或数量可以根据数据变化而更新。 数据驱动的卡片列表 使用v-for指令循环渲染卡片,数据存储在…

vue实现卡片翻转

vue实现卡片翻转

Vue 实现卡片翻转效果 卡片翻转效果可以通过 CSS 3D 变换和 Vue 的过渡系统实现。以下是两种常见实现方式: 基础 CSS 3D 翻转 <template> <div…

vue实现商品分页

vue实现商品分页

Vue 实现商品分页的方法 基础分页实现 安装必要的依赖(如axios用于请求数据) npm install axios 创建分页组件模板 <template> <div&g…