当前位置:   article > 正文

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

微信小程序数据懒加载

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

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

  1. //构造方法
  2. constructor({ expire = 3600 }){
  3. //成员属性 过期时间
  4. //毫秒
  5. this.expire = new Date().getTime()+expire * 1000;
  6. }
  7. //删除
  8. del(key){
  9. wx.removeStorageSync(key);
  10. }
  11. //置入数据
  12. dset(key ,value){
  13. let data = {expire:this.expire,value};
  14. this.del(key);
  15. //设置缓存
  16. wx.setStorageSync(key, data);
  17. }

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

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

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

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

使用如下:

  1. //初始化数据
  2. data: {
  3. cur: 1//懒加载次数
  4. },
  5. //初始化执行
  6. onLoad(options) {
  7. // 放入数据组 (cache即是之前封装方法的别名)
  8. cache.lazy_loading_parent(this.route,arrs);
  9. // 初始化显示
  10. this.onReachBottom();
  11. },
  12. //下滑执行
  13. onReachBottom: function () {
  14. let datas = cache.get_show_array(this.data.cur,this.route);
  15. this.setData({cons:datas,cur:this.data.cur+1})
  16. },

这样就完成了一个列表的懒加载操作。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/321302
推荐阅读
  

闽ICP备14008679号