当前位置:首页 > uni-app

uniapp商品列表

2026-01-13 18:10:37uni-app

商品列表实现方法

在uniapp中实现商品列表功能,可以通过多种方式完成,以下是几种常见的方法:

使用scroll-view组件实现滚动列表

<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>{{item.title}}</text>
    <text>¥{{item.price}}</text>
  </view>
</scroll-view>

使用mescroll-uni实现上拉加载下拉刷新 安装mescroll-uni插件后,可以轻松实现分页加载功能:

<mescroll-uni ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback">
  <view v-for="(item, index) in goodsList" :key="index">
    <!-- 商品项内容 -->
  </view>
</mescroll-uni>

通过uni-list组件实现标准列表 uni-list提供了标准化的列表样式:

<uni-list>
  <uni-list-item v-for="(item, index) in goodsList" :key="index" 
    :title="item.title" 
    :note="'¥'+item.price" 
    :thumb="item.image"
    clickable
    @click="gotoDetail(item.id)">
  </uni-list-item>
</uni-list>

数据获取与处理

商品列表通常需要从后端API获取数据:

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

样式优化建议

商品列表的视觉呈现很重要,可以考虑以下样式优化:

.goods-item {
  display: flex;
  padding: 20rpx;
  border-bottom: 1rpx solid #eee;
}
.goods-item image {
  width: 200rpx;
  height: 200rpx;
  margin-right: 20rpx;
}
.goods-item text {
  display: block;
}
.price {
  color: #f40;
  font-weight: bold;
}

性能优化技巧

长列表性能优化是关键:

  • 使用虚拟列表技术(virtual-list)处理大量数据
  • 图片懒加载:<image lazy-load>
  • 分页加载数据,避免一次性请求过多
  • 合理使用v-ifv-show控制元素渲染

交互功能扩展

商品列表通常需要添加以下交互功能:

uniapp商品列表

  • 收藏按钮
  • 加入购物车按钮
  • 商品筛选和排序功能
  • 搜索功能集成
  • 分类导航联动

通过以上方法,可以在uniapp中实现功能完善、性能优良的商品列表页面。

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

相关文章

vue实现无线滚动列表

vue实现无线滚动列表

无限滚动列表的实现方法 无限滚动列表通常用于展示大量数据,通过动态加载数据减少初始渲染压力。以下是基于Vue的实现方法: 使用Intersection Observer API监听滚动 Inters…

vue列表展开实现

vue列表展开实现

Vue 列表展开实现方法 使用 v-for 和 v-show 控制展开状态 通过 v-for 渲染列表项,配合 v-show 控制子内容的显示隐藏。需要为每个列表项维护一个展开状态。 <tem…

vue实现卡片列表

vue实现卡片列表

Vue 实现卡片列表 使用 v-for 动态渲染卡片列表 通过 Vue 的 v-for 指令可以动态渲染卡片列表,数据通常存储在组件的 data 或通过 API 获取。 <template&g…

vue实现列表demo

vue实现列表demo

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

vue实现树形列表

vue实现树形列表

Vue 实现树形列表的方法 递归组件实现 使用递归组件是最常见的方式,适合处理嵌套层级不确定的数据结构。 数据结构示例 data() { return { treeData: […

vue实现列表翻页

vue实现列表翻页

Vue 列表翻页实现方法 基础分页实现 在 Vue 中实现列表翻页通常需要结合分页组件和数据请求。使用 Element UI 的分页组件可以快速实现: <template> <…