当前位置:首页 > uni-app

uniapp商品列表

2026-02-05 16:22:19uni-app

商品列表的实现方法

在UniApp中实现商品列表通常需要结合前端页面布局、数据请求和渲染逻辑。以下是具体实现步骤:

页面布局设计

使用<scroll-view>组件实现可滚动列表,搭配<view><image>构建商品卡片:

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

数据请求与处理

script部分定义数据和方法:

export default {
  data() {
    return {
      goodsList: [],
      page: 1,
      loading: false
    }
  },
  onLoad() {
    this.loadData()
  },
  methods: {
    async loadData() {
      if(this.loading) return
      this.loading = true
      const res = await uni.request({
        url: 'https://api.example.com/goods',
        data: { page: this.page }
      })
      this.goodsList = [...this.goodsList, ...res.data.list]
      this.page++
      this.loading = false
    }
  }
}

样式优化

添加CSS样式美化商品列表:

uniapp商品列表

.goods-list {
  height: 100vh;
  padding: 20rpx;
}
.goods-item {
  margin-bottom: 30rpx;
  background: #fff;
  border-radius: 16rpx;
  overflow: hidden;
}
.goods-item image {
  width: 100%;
  height: 300rpx;
}
.info {
  padding: 20rpx;
}
.title {
  font-size: 28rpx;
  color: #333;
}
.price {
  font-size: 32rpx;
  color: #f40;
  margin-top: 10rpx;
}

上拉加载更多

scroll-view上绑定触底事件:

<scroll-view scroll-y @scrolltolower="loadMore">

添加对应方法:

uniapp商品列表

loadMore() {
  this.loadData()
}

下拉刷新功能

在页面配置中开启下拉刷新:

{
  "enablePullDownRefresh": true
}

添加事件处理:

onPullDownRefresh() {
  this.page = 1
  this.goodsList = []
  this.loadData().then(() => {
    uni.stopPullDownRefresh()
  })
}

性能优化建议

对于长列表建议使用<recycle-list>组件替代常规渲染方式,可显著提升性能。商品图片使用懒加载技术,通过lazy-load属性实现。复杂列表可考虑使用虚拟滚动技术。

数据缓存策略可减少重复请求,利用uni.setStorage存储已获取数据,下次加载时优先显示缓存内容。分页加载时注意去重处理,避免数据重复。

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

相关文章

vue实现列表权限

vue实现列表权限

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

vue实现奇偶列表

vue实现奇偶列表

Vue实现奇偶列表样式 在Vue中实现列表项的奇偶不同样式,可以通过多种方式实现。以下是几种常见方法: 使用v-for和动态class绑定 通过v-for循环生成列表时,利用索引值判断奇偶性并绑定…

vue实现列表组件

vue实现列表组件

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

vue实现虚拟列表

vue实现虚拟列表

虚拟列表的概念 虚拟列表(Virtual List)是一种优化长列表渲染性能的技术,通过仅渲染可视区域内的元素,减少DOM节点数量,从而提升页面性能。适用于数据量大的场景(如表格、下拉选择器等)。…

vue实现模拟列表

vue实现模拟列表

使用 Vue 实现模拟列表 在 Vue 中实现模拟列表可以通过多种方式完成,常见的方法包括使用 v-for 指令动态渲染数据、结合计算属性或方法进行列表操作。以下是一个完整的实现方案: 基础列表渲染…

vue实现商品累加

vue实现商品累加

Vue实现商品累加功能 商品累加功能通常用于购物车或商品列表,允许用户增减商品数量。以下是实现方法: 数据绑定与基础累加 在Vue组件中定义商品数据,使用v-model绑定数量输入框: data(…