当前位置:首页 > 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中实现列表循环主要依赖于v-for指令,该指令基于源数据多次渲染元素或模板块。 基础数组循环 使用v-for遍历数组时,语法为item in items或(item, i…

vue实现悬浮列表

vue实现悬浮列表

Vue 实现悬浮列表的方法 使用 CSS 固定定位 通过 CSS 的 position: fixed 属性实现悬浮效果。在 Vue 模板中,为列表容器添加固定定位样式,并设置 top、left 等属…

vue实现列表页

vue实现列表页

Vue 实现列表页的方法 数据绑定与渲染 使用 v-for 指令动态渲染列表数据,结合 :key 确保渲染性能。示例代码: <template> <ul> <…

vue 实现列表多选

vue 实现列表多选

Vue 实现列表多选的方法 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以自动处理多选逻辑。适用于复选框(checkbox)场景。 <template> &…

vue实现列表过渡

vue实现列表过渡

vue实现列表过渡的方法 在Vue中,可以使用内置的<transition-group>组件来实现列表项的过渡效果。该组件专门为动态列表设计,能够处理元素的添加、删除和顺序变化。…

vue 实现商品列表

vue 实现商品列表

实现商品列表的基本结构 在Vue中实现商品列表,通常需要创建一个组件来展示商品数据。可以使用v-for指令循环渲染商品列表,并通过数据绑定动态显示商品信息。 <template> &…