关于微信小程序列表懒加载的解决方案

这篇具有很好参考价值的文章主要介绍了关于微信小程序列表懒加载的解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  我们在渲染一个展示数组,不能一次性的把所有的元素都展示出来,这样可能会导致用户性能体验下降,因此我们需要把所有的元素先保存在一个容器里,等用户需要(上滑)的时候再拿出来显示,为了更加高效的开发,我封装了方法,为了让封装方法得到的数据能够持久化,我使用了微信小程序缓存技术来保存数据。

  首先我们先写出缓存需要的方法:

  //构造方法
  constructor({ expire = 3600 }){
    //成员属性 过期时间
    //毫秒
    this.expire = new Date().getTime()+expire * 1000;
  }

   //删除
   del(key){
      wx.removeStorageSync(key);
   }

   //置入数据
   dset(key ,value){
      let data = {expire:this.expire,value};
      this.del(key);
      //设置缓存
      wx.setStorageSync(key, data);
   }

在写一个保存所有展示数据的方法:

  //置入总数据(页面路径,总数据)
  lazy_loading_parent(pagepath,_array){
    this.dset(pagepath,_array);//删除原来的页面渲染数组,放入新的数组
  }

再写一个拿到数据的方法:

  //得到需要渲染的数据(次数,页面路径)
  get_show_array(degree,pagepath){
    let parent_array = this.get(pagepath);
    let child_array = [];
    wx.showLoading({
      title: '加载中',
    },2000)
    let stop_index = degree*10;
    //判断是否溢出
    if(stop_index>parent_array.length){
      stop_index = parent_array.length;
    }
    child_array = parent_array.slice(0,stop_index+1);
    wx.hideLoading();
    return child_array;
  }

使用如下:

  //初始化数据
  data: {
    cur: 1//懒加载次数
  },

  //初始化执行
  onLoad(options) {
    // 放入数据组 (cache即是之前封装方法的别名)
    cache.lazy_loading_parent(this.route,arrs);
    // 初始化显示
    this.onReachBottom();
  },
  //下滑执行
  onReachBottom: function () {
    let datas = cache.get_show_array(this.data.cur,this.route);
    this.setData({cons:datas,cur:this.data.cur+1})
  },

这样就完成了一个列表的懒加载操作。文章来源地址https://www.toymoban.com/news/detail-522918.html

到了这里,关于关于微信小程序列表懒加载的解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【python进阶】列表排序已经掌握?这种将变量插入列表序列的方法你该知道了

    🙋‍♂️作者简介:生鱼同学,大数据科学与技术专业硕士在读👨‍🎓,曾获得华为杯数学建模国家二等奖🏆,MathorCup 数学建模竞赛国家二等奖🏅,亚太数学建模国家二等奖🏅。 ✍️研究方向:复杂网络科学 🏆兴趣方向:利用python进行数据分析与机器学习,数学建模竞

    2023年04月08日
    浏览(43)
  • python经典有序序列的list列表推导式

    生成一个数据列表 使用列表推导式生成该数据列表 分析: 1、使用一行代码的列表推导式就完成了该列表的生成 2、[i for i in range(20)],第一个i元素代表向列表list_2中添加的元素 3、[i for i in range(20)],第二个i元素代表for循环遍历的i元素 使用列表推导式生成只有偶数的数据列

    2024年02月02日
    浏览(59)
  • 【Python 笔记(二)——基本语句 变量类型 字符串 序列 列表与元组 字典与集合】

    在 Python 中,基本语句可以帮助我们完成一些基本的操作,如控制流程、定义函数等。以下是 Python 中的几种基本语句: if 语句 if 语句用于判断某个条件是否成立,如果条件成立则执行相应的代码块。 for 语句 for 语句用于遍历序列中的元素,依次执行相应的代码块。 while 语

    2024年02月08日
    浏览(50)
  • 关于微信小程序背景图手机上加载不出来问题的解决方案

    1.问题:平时在给背景图的时候大家的第一反应一定是在css中直接写background-image,直接就把图片当背景放在了那里,但是这样的方法在pc端还是可以的,在小程序端却存在着加载不出来的问题,现在我来给大家提供一个解决方法(插入图片的方法) 2.原理:一个大的父盒子,同时

    2024年02月04日
    浏览(99)
  • 微信小程序开发---条件渲染和列表渲染

    目录 一、条件渲染 (1)基本使用  (2)block (3)hidden 二、列表渲染 (1)基本使用 (2)手动指定索引和当前项的变量名 (3)wx:key的使用 条件渲染就相当于if语句,这也不需要多说了,终点是它的用法。 如果想要一次性控制多个组件的展示和隐藏,可以使用block标签将多

    2024年02月09日
    浏览(52)
  • 微信小程序开发学习笔记——3.4for循环列表渲染的用法

    跟着b站up主“咸虾米_”学习微信小程序开发中,把学习记录存到这方便后续查找。 课程连接:https://www.bilibili.com/video/BV19G4y1K74d?p=18vd_source=9b149469177ab5fdc47515e14cf3cf74 https://developers.weixin.qq.com/miniprogram/dev/reference/wxml/list.html data.js文件的data部分:  data.wxml文件中添加如下代码:

    2024年02月22日
    浏览(72)
  • 【微信小程序开发】学习小程序的模块化开发(自定义组件和分包加载)

    模块化开发是一种将复杂的应用程序分解为一系列独立的模块,每个模块负责完成特定的功能的开发方式。模块化开发可以提高代码的可维护性和可复用性,使开发过程更加高效和灵活。 模块化开发在软件开发领域中被广泛应用,其重要性和优势不言而喻。 首先,模块化开

    2024年02月05日
    浏览(63)
  • 微信小程序开发——使用Vant组件库van-dropdown-menu实现下拉列表切换页面内容

    请先根据官网要求安装好vant组件库并引入相关组件 1、思路 在页面中使用hidden属性判断是否选中当前信息,再隐藏其他所有内容,仅显示所选内容。 2、代码 wxml部分 js部分 3、实际效果(view模块中的内容可以根据实际开发调整)

    2024年02月14日
    浏览(44)
  • 微信小程序开发scroll-view在预览或真机调试仅显示第一个元素解决方案

    现象如下: 在编译时显示正常: 在预览或真机调试时仅显示第一个元素:   解决方案:将app.json文件中renderer类型由skyline改为webview   更多微信小程序内容欢迎关注我! 有帮助的话欢迎打赏!

    2024年01月25日
    浏览(36)
  • uniapp-微信小程序实现swiper左右滚动切换tab,上下滚动加载列表

    思路:左右滑动使用swiper,上下滑动用scroll-view,swiper改变时同时改变tab并更新列表 坑点: 1. swiper高度问题,导致滑动不到最底部和最顶部         需要手动计算,减去顶部高度和底部tabbar,并且需要同时设置padding-top和paddin-botton,否则列表显示不完整 2. 由于最开始的代码

    2024年02月04日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包