当前位置:首页 > uni-app

uniapp 内容列表

2026-01-15 18:17:39uni-app

uniapp 内容列表的实现方法

在uniapp中实现内容列表通常需要结合组件和数据绑定。以下是一个常见的方法:

模板部分

<template>
  <view class="content">
    <scroll-view scroll-y="true" class="list">
      <view v-for="(item, index) in listData" :key="index" class="list-item">
        <text>{{ item.title }}</text>
        <image :src="item.image" mode="aspectFill"></image>
      </view>
    </scroll-view>
  </view>
</template>

脚本部分

<script>
export default {
  data() {
    return {
      listData: [
        { title: '项目1', image: '/static/image1.jpg' },
        { title: '项目2', image: '/static/image2.jpg' }
      ]
    }
  }
}
</script>

样式部分

<style>
.content {
  padding: 20rpx;
}
.list {
  height: 100vh;
}
.list-item {
  margin-bottom: 20rpx;
  padding: 20rpx;
  background-color: #fff;
  border-radius: 10rpx;
}
</style>

分页加载的实现

对于长列表,实现分页加载可以提升性能:

data() {
  return {
    listData: [],
    page: 1,
    loading: false,
    noMore: false
  }
},
methods: {
  loadData() {
    if (this.loading || this.noMore) return

    this.loading = true
    uni.request({
      url: 'your_api_url',
      data: { page: this.page },
      success: (res) => {
        if (res.data.length) {
          this.listData = [...this.listData, ...res.data]
          this.page++
        } else {
          this.noMore = true
        }
      },
      complete: () => {
        this.loading = false
      }
    })
  }
},
onReachBottom() {
  this.loadData()
},
onLoad() {
  this.loadData()
}

性能优化技巧

使用<recycle-list>组件处理超长列表:

<recycle-list 
  :list="listData"
  :template-key="'templateKey'"
  :alias="'item'">
  <template v-slot:default="props">
    <view>{{ props.item.title }}</view>
  </template>
</recycle-list>

添加下拉刷新功能:

onPullDownRefresh() {
  this.page = 1
  this.noMore = false
  this.listData = []
  this.loadData()
  uni.stopPullDownRefresh()
}

常见UI库实现

使用uView UI库快速创建列表:

<template>
  <u-list>
    <u-list-item 
      v-for="(item, index) in listData"
      :key="index"
      :title="item.title"
      :thumb="item.image">
    </u-list-item>
  </u-list>
</template>

注意事项

  • 列表项必须设置唯一的:key属性
  • 长列表应考虑使用虚拟滚动技术
  • 图片加载应使用懒加载模式
  • 分页加载时需处理边界条件
  • 移动端需考虑下拉刷新和上拉加载的交互体验

uniapp 内容列表

标签: 内容列表
分享给朋友:

相关文章

vue实现列表循环

vue实现列表循环

Vue 列表循环的实现方法 在 Vue 中,可以通过 v-for 指令实现列表循环渲染。以下是几种常见的实现方式: 基础列表渲染 <template> <ul>…

vue实现WiFi列表

vue实现WiFi列表

获取WiFi列表的Vue实现 使用Vue获取WiFi列表需要结合浏览器API或后端服务,因为浏览器出于安全限制无法直接访问系统WiFi信息。以下是两种常见实现方式: 方法一:通过Web API获取附…

vue实现列表权限

vue实现列表权限

实现列表权限的基本思路 在Vue中实现列表权限通常涉及根据用户角色或权限动态渲染列表内容。核心逻辑是通过权限判断控制列表项的显示、隐藏或操作权限。 权限数据管理 使用Vuex或Pinia存储全局权限…

网页制作css 列表

网页制作css 列表

创建CSS列表样式 使用CSS可以自定义HTML列表(有序列表<ol>和无序列表<ul>)的外观,包括项目符号、缩进、颜色等。以下是一些常见的列表样式方法: 基础列表样式 通…

vue实现商品列表

vue实现商品列表

Vue实现商品列表的方法 使用Vue实现商品列表需要结合数据绑定、组件化和状态管理。以下是实现商品列表的几种常见方法: 基础数据绑定实现 在Vue组件中定义商品数据数组,使用v-for指令循环渲染商…

vue实现检索内容标记

vue实现检索内容标记

实现检索内容高亮标记的方法 在Vue中实现检索内容的高亮标记,可以通过以下步骤完成: 使用自定义指令或过滤器 创建一个自定义指令或过滤器,用于将匹配的文本包裹在带有高亮样式的标签中。例如: Vu…