Dalam beberapa tahun kebelakangan ini, teknologi pembangunan bahagian hadapan telah berkembang pesat Sebagai salah satu rangka kerja bahagian hadapan yang paling popular dalam beberapa tahun kebelakangan ini, Vue telah digemari dan dicari oleh ramai pembangun. Dalam proses pembangunan sebenar, Vue sering digunakan dalam paparan dan pemaparan senarai produk. Walau bagaimanapun, paparan senarai produk yang ringkas tidak dapat memenuhi keperluan pengguna. Mereka bentuk senarai produk berperingkat boleh meningkatkan rasa artistik dan pengalaman pengguna halaman. Mari perkenalkan kaedah merealisasikan susunan berperingkat senarai produk dalam Vue.
Untuk mencapai susunan senarai produk yang berperingkat, langkah berikut diperlukan:
1. Tentukan sumber data senarai produk
const goods = [ { id: 1, name: 'Apple iPhone 12', price: 6999, image: 'https://xxx.com/xxx.jpg' }, { id: 2, name: 'Samsung Galaxy S21', price: 7999, image: 'https://xxx.com/xxx.jpg' }, // ... ];
<template> <div class="goods-list"> <div class="goods-card" v-for="item in goods" :key="item.id" > <img :src="item.image" alt="商品图片" /> <div class="info"> <p class="name">{{ item.name }}</p> <p class="price">¥{{ item.price }}</p> </div> </div> </div> </template>
computed: { // 计算出商品卡片的宽度 cardWidth() { const containerWidth = /* 获取容器宽度 */; const gutter = /* 获取卡片之间的间距 */; const columnNum = /* 获取列数 */; return (containerWidth - gutter * (columnNum - 1)) / columnNum; }, // 计算出商品卡片的高度 cardHeight() { return /* 获取商品卡片的高度 */; }, // 计算出每个商品卡片的错位位置 positions() { const cardList = /* 获取商品卡片列表 */; const gutter = /* 获取卡片之间的间距 */; const positions = []; let x = 0; let y = 0; cardList.forEach((card, index) => { positions.push({ x, y }); x += index % 2 === 0 ? this.cardWidth + gutter : -this.cardWidth - gutter; y += index % 2 === 0 ? 0 : this.cardHeight + gutter; }); return positions; } }
<template> <div class="goods-list"> <div class="goods-card" v-for="(item, index) in goods" :key="item.id" :style="{ left: positions[index].x + 'px', top: positions[index].y + 'px' }" > <img :src="item.image" alt="商品图片" /> <div class="info"> <p class="name">{{ item.name }}</p> <p class="price">¥{{ item.price }}</p> </div> </div> </div> </template>
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi susunan tidak sejajar senarai produk dalam vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!