当前位置:首页 > VUE

vue实现双列商品卡片

2026-01-21 18:39:46VUE

Vue 实现双列商品卡片

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

vue实现双列商品卡片

方法一:使用 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>

响应式调整

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

vue实现双列商品卡片

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

vue实现商品列表

vue实现商品列表

Vue实现商品列表的方法 使用Vue实现商品列表需要结合数据绑定、组件化和状态管理。以下是实现商品列表的几种常见方法: 基础数据绑定实现 在Vue组件中定义商品数据数组,使用v-for指令循环渲染商…

vue实现商品详解

vue实现商品详解

Vue 实现商品详情页功能 技术栈选择 Vue 3 + Vue Router + Pinia(状态管理)+ Axios(数据请求)+ Element UI/Vant(可选UI库) 核心功能模块 数…

vue实现卡片拖动

vue实现卡片拖动

Vue 实现卡片拖动的几种方法 使用 HTML5 拖放 API HTML5 提供了原生的拖放 API,可以在 Vue 中直接使用。通过 draggable 属性标记可拖动的元素,并监听 dragsta…

vue实现商品列表代码

vue实现商品列表代码

以下是一个基于Vue.js的商品列表实现示例,包含基础功能如数据渲染、分页和筛选: 基础商品列表渲染 <template> <div class="product-list"&…