当前位置:首页 > uni-app

uniapp商品列表

2026-03-04 17:59:39uni-app

实现商品列表的基本结构

在uniapp中,商品列表通常通过<scroll-view><list>组件实现,搭配v-for循环渲染商品数据。示例代码:

<template>
  <view class="goods-list">
    <scroll-view scroll-y="true" style="height: 100vh;">
      <view v-for="(item, index) in goodsList" :key="index" class="goods-item">
        <image :src="item.image" mode="aspectFill"></image>
        <text class="title">{{ item.title }}</text>
        <text class="price">¥{{ item.price }}</text>
      </view>
    </scroll-view>
  </view>
</template>

数据绑定与加载

商品数据通常从后端API获取,通过onLoad生命周期或自定义方法加载。示例:

uniapp商品列表

<script>
export default {
  data() {
    return {
      goodsList: [],
      page: 1,
      pageSize: 10
    };
  },
  onLoad() {
    this.loadGoodsList();
  },
  methods: {
    async loadGoodsList() {
      const res = await uni.request({
        url: 'https://api.example.com/goods',
        data: { page: this.page, pageSize: this.pageSize }
      });
      this.goodsList = [...this.goodsList, ...res.data.list];
    }
  }
};
</script>

样式优化与布局

使用Flex布局或Grid布局优化商品列表的显示效果。CSS示例:

uniapp商品列表

<style>
.goods-list {
  padding: 20rpx;
}
.goods-item {
  display: flex;
  flex-direction: column;
  margin-bottom: 20rpx;
  background: #fff;
  border-radius: 10rpx;
  overflow: hidden;
}
.goods-item image {
  width: 100%;
  height: 300rpx;
}
.title {
  font-size: 28rpx;
  padding: 10rpx;
}
.price {
  color: #ff2d4a;
  font-weight: bold;
  padding: 10rpx;
}
</style>

下拉刷新与上拉加载

通过scroll-viewpages.json配置实现分页功能。下拉刷新示例:

onPullDownRefresh() {
  this.page = 1;
  this.goodsList = [];
  this.loadGoodsList().then(() => {
    uni.stopPullDownRefresh();
  });
},
onReachBottom() {
  this.page++;
  this.loadGoodsList();
}

性能优化建议

  1. 图片懒加载:在image标签中添加lazy-load属性。
  2. 数据分页:避免一次性加载过多数据,分页请求减轻服务器压力。
  3. 虚拟列表:超长列表时使用<unicloud-db>或第三方插件优化渲染性能。

交互增强

添加商品点击事件跳转详情页:

<view 
  v-for="(item, index) in goodsList" 
  :key="index" 
  class="goods-item" 
  @click="navigateToDetail(item.id)"
>
</view>
methods: {
  navigateToDetail(id) {
    uni.navigateTo({
      url: `/pages/goods/detail?id=${id}`
    });
  }
}

以上步骤覆盖了uniapp商品列表的核心实现逻辑,可根据实际需求调整样式和功能。

标签: 商品列表
分享给朋友:

相关文章

vue实现列表水印

vue实现列表水印

实现列表水印的方法 在Vue中为列表添加水印可以通过多种方式实现,以下是几种常见的方法: 使用CSS背景图 通过CSS的background-image属性为列表元素添加水印背景。水印可以是文字或图…

vue实现列表显示

vue实现列表显示

使用 Vue 实现列表显示 基础列表渲染 在 Vue 中,可以通过 v-for 指令实现列表渲染。以下是一个简单的示例: <template> <ul> <…

vue列表查询实现

vue列表查询实现

实现Vue列表查询功能 基本数据绑定与渲染 在Vue中实现列表查询,首先需要定义数据源和查询条件。通过v-model绑定搜索输入框,使用计算属性过滤列表。 <template> &l…

vue实现列表权限

vue实现列表权限

实现列表权限控制的方法 在Vue中实现列表权限控制通常涉及前端逻辑与后端数据的配合。以下是几种常见方法: 基于角色或权限码的渲染控制 通过v-if或v-show指令根据用户权限动态渲染列表项: &…

vue实现纵向列表

vue实现纵向列表

实现纵向列表的基本方法 在Vue中实现纵向列表可以通过v-for指令结合数组数据渲染。核心是利用循环遍历数据生成列表项,并设置CSS控制纵向排列。 <template> <di…

vue实现列表页面

vue实现列表页面

Vue 列表页面实现方案 基础列表渲染 使用 v-for 指令渲染数组数据,配合 :key 提升性能: <template> <ul> <li v-for=…