当前位置:首页 > 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存储已获取数据,下次加载时优先显示缓存内容。分页加载时注意去重处理,避免数据重复。

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

相关文章

jquery 列表

jquery 列表

jQuery 列表操作 jQuery 提供了多种方法来操作 HTML 列表(如 <ul> 或 <ol>)。以下是一些常见的操作方式: 动态添加列表项 使用 append()…

vue实现商品全选

vue实现商品全选

实现全选功能的基本思路 在Vue中实现商品全选功能,通常需要维护一个商品列表数据和一个选中状态数组。通过计算属性判断是否全选,通过方法控制全选或取消全选。 定义数据模型 data() { ret…

vue实现图片列表

vue实现图片列表

实现图片列表的基本方法 在Vue中实现图片列表可以通过v-for指令遍历图片数据数组,结合<img>标签动态绑定src属性。以下是基本实现步骤: <template> &…

vue实现伸缩列表

vue实现伸缩列表

Vue 实现伸缩列表的方法 使用 Vue 实现伸缩列表可以通过动态绑定样式或类名,结合过渡效果实现平滑的展开和收起动画。以下是几种常见实现方式: 动态绑定高度 通过 v-if 或 v-show 控制…

vue实现列表点击

vue实现列表点击

Vue 实现列表点击的方法 在 Vue 中实现列表点击功能通常涉及 v-for 渲染列表和 v-on(或 @)绑定点击事件。以下是几种常见实现方式: 基础列表点击 使用 v-for 渲染列表,并通过…

vue实现列表demo

vue实现列表demo

以下是一个基于 Vue.js 的列表实现示例,包含基础功能与关键代码解析: 基础列表渲染 <template> <div> <ul>…