当前位置:首页 > 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 公共列表组件 公共列表组件通常用于展示重复结构的数据,例如商品列表、用户列表等。以下是一个典型的实现方式: 基础实现 创建可复用的列表组件 List.vue: <tem…

vue实现列表水印

vue实现列表水印

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

vue公共列表的实现

vue公共列表的实现

Vue 公共列表的实现方法 在 Vue 中实现公共列表组件,可以通过封装可复用的逻辑和模板来完成。以下是几种常见的实现方式: 使用 props 和 slots 通过 props 接收列表数据,使用…

uniapp商品列表

uniapp商品列表

商品列表实现方法 在uniapp中实现商品列表功能,可以通过多种方式完成,以下是几种常见的方法: 使用scroll-view组件实现滚动列表 <scroll-view scroll-y="t…

vue列表查询实现

vue列表查询实现

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

vue实现列表添加

vue实现列表添加

使用 Vue 实现列表添加功能 数据绑定与列表渲染 在 Vue 中,通过 v-for 指令可以轻松实现列表渲染。首先需要定义一个数组来存储列表数据,并在模板中使用 v-for 循环渲染。 <…