当前位置:首页 > uni-app

uniapp实现懒加载

2026-02-05 17:35:06uni-app

uniapp实现懒加载的方法

图片懒加载uniapp中,可以使用<image>标签的lazy-load属性实现图片懒加载。该属性仅在pagescroll-view时生效,且需要设置scroll-view的高度。

<scroll-view scroll-y style="height: 100vh;">
  <image 
    v-for="(item, index) in list" 
    :key="index" 
    :src="item.src" 
    lazy-load
    mode="aspectFill"
  ></image>
</scroll-view>

列表数据懒加载 对于长列表数据的懒加载,可以通过监听scroll-view@scrolltolower事件或页面的onReachBottom生命周期实现。

export default {
  data() {
    return {
      list: [],
      page: 1,
      loading: false,
      noMore: false
    }
  },
  methods: {
    loadMore() {
      if (this.loading || this.noMore) return;
      this.loading = true;

      // 模拟异步请求
      setTimeout(() => {
        const newData = Array(10).fill(0).map((_,i) => ({ 
          id: this.list.length + i,
          src: `https://picsum.photos/200/300?random=${this.list.length + i}`
        }));

        this.list = [...this.list, ...newData];
        this.page++;
        this.loading = false;

        // 假设总共30条数据
        if (this.list.length >= 30) {
          this.noMore = true;
        }
      }, 1000);
    }
  },
  onReachBottom() {
    this.loadMore();
  }
}

组件懒加载 使用vue的异步组件配合uniappeasycom机制可以实现组件懒加载。

uniapp实现懒加载

pages.json中配置:

{
  "easycom": {
    "^lazy-(.*)": "@/components/lazy/$1.vue"
  }
}

创建异步组件:

uniapp实现懒加载

// components/lazy/my-component.vue
export default {
  name: 'lazy-my-component',
  // 组件实现
}

使用时直接按需引入:

<template>
  <lazy-my-component v-if="showComponent" />
</template>

注意事项

  • 图片懒加载需要真机调试,部分模拟器可能无法正常显示效果
  • 列表懒加载应配合加载状态提示和没有更多数据提示
  • 组件懒加载适用于较大且不立即需要的组件
  • iOS平台需要确保scroll-view有明确的高度值

通过以上方法可以有效减少首屏加载时间,提升用户体验。根据实际需求选择适合的懒加载方案,也可以组合使用多种方式。

标签: 加载uniapp
分享给朋友:

相关文章

uniapp删除

uniapp删除

卸载 uniapp 项目依赖 在项目根目录下执行以下命令,移除 node_modules 和依赖锁文件: rm -rf node_modules package-lock.json 如需清理全局…

vue实现加载

vue实现加载

Vue 实现加载功能的方法 使用 v-if 或 v-show 控制加载状态 在模板中通过 v-if 或 v-show 控制加载动画的显示与隐藏。v-if 会完全移除 DOM 元素,而 v-show 仅…

uniapp怎么启动

uniapp怎么启动

启动UniApp项目的步骤 确保已安装Node.js(建议版本12+)和HBuilderX(官方IDE)。若未安装,需先下载并配置环境。 安装开发工具 从HBuilderX官网下载对应操作系统的版本…

uniapp实名认证

uniapp实名认证

uniapp实名认证实现方法 使用uniCloud实名认证插件 uniapp官方提供了uniCloud的实名认证插件,可快速集成到项目中。插件支持身份证识别、活体检测等功能,需在uniCloud控制台…

uniapp视频

uniapp视频

uniapp视频开发基础 uniapp支持通过video组件实现视频播放功能,该组件兼容多端(H5、小程序、App等),基本用法如下: <template> <video…

uniapp设置背景

uniapp设置背景

设置全局背景样式 在App.vue文件中添加全局样式,使用page选择器设置页面背景。这种方式会影响所有页面背景。 <style> page { background-color:…