在电子商务、内容展示等场景中,需要展示大量带有标题、图片、价格、评价等信息的卡片。这些卡片通常需要动态加载和展示,以适应不同设备和屏幕尺寸。
本文中的代码片段展示了如何使用 Vue.js 构建一个动态卡片列表。该列表包含多个卡片,每个卡片包含产品图片、标题、价格、评分和销量等信息。用户可以滚动浏览卡片列表,并点击卡片查看产品详情。
首先,需要定义一个包含卡片数据的数组。本例中,数据存储在 data.products
中。
const data = {
products: [
{
id: 1,
title: "Mini Pottery Teapot",
price: "$125.00",
rating: 4.7,
sold: 4576,
image: "https://source.unsplash.com/random/200x200",
},
// 省略其他产品数据
],
};
接下来,创建一个 van-card
组件,用于渲染单个卡片。该组件接收产品数据作为 props。
<van-card
title="Mini Pottery Teapot"
price="$125.00"
rating="4.7"
sold="4,576"
image="https://source.unsplash.com/random/200x200"
/>
在父组件中,使用 v-for
指令遍历产品数据,并渲染相应的卡片。
<div class="product-list">
<van-row>
<van-col span="6" v-for="product in data.products" :key="product.id">
<van-card
:title="product.title"
:price="product.price"
:rating="product.rating"
:sold="product.sold"
:image="product.image"
/>
</van-col>
</van-row>
</div>
为了适应不同设备和屏幕尺寸,使用 van-row
和 van-col
组件实现响应式布局。van-row
用于创建一行,van-col
用于指定每列的宽度。
<van-row>
<van-col span="6" v-for="product in data.products" :key="product.id">
<!-- 卡片内容 -->
</van-col>
</van-row>