您当前的位置: 首页 > 知识百科 > 微信小程序分页加载的好处,微信小程序分页加载开发实例

微信小程序分页加载的好处,微信小程序分页加载开发实例

时间:2023-07-01 14:05 阅读数:14 人阅读 分类:知识百科

  在浏览小程序页面的时候,为了能够获取更多资料和数据,一般都会需要小程序分页加载,但是这种效果的实现是需要提前开发和设置的,那么微信小程序分页加载要怎么开发呢?看看以下资料就知道了。

  微信小程序分页加载的好处:

  当用户打开小程序页面后台数据量又太过庞大时,页面的打开速度相对来说就没那么快了。如果用户只需要浏览前面一部分内容,那么后面的小程序数据所产生的流量就是一种浪费,基于优化的角度来考虑,后台不要一次*返回所有数据,当用户有需要再往下翻的时候,再加载更加数据出来,这就是小程序分页加载的好处。

  必备参数:

  (1)pageindex: 1 //第几次加载

  (2)callbackcount: 15 //需要返回数据的个数

  其他参数:

  根据接口的所需参数

  微信小程序分页加载开发实例:

  示例:

  wxml:

  [html] view plain copy

  搜索

  {{item.songname}}

  {{item.name}}

  正在载入更多...

  已加载全部

  js:

  [javascript] view plain copyvar util = require('../../utils/util.js')

  Page({

  data: {

  searchKeyword: '', //需要搜索的字符

  searchSongList: [], //放置返回数据的数组

  isFromSearch: true, // 用于判断searchSongList数组是不是空数组,默认true,空的数组

  searchPageNum: 1, // 设置加载的第几次,默认是第一次

  callbackcount: 15, //返回数据的个数

  searchLoading: false, //"上拉加载"的变量,默认false,隐藏

  searchLoadingComplete: false //“没有数据”的变量,默认false,隐藏

  },

  //输入框事件,每输入一个字符,就会触发一次

  bindKeywordInput: function(e){

  console.log("输入框事件")

  this.setData({

  searchKeyword: e.detail.value

  })

  },

  //搜索,访问网络

  fetchSearchList: function(){

  let that = this;

  let searchKeyword = that.data.searchKeyword,//输入框小程序字符串作为参数

  searchPageNum = that.data.searchPageNum,//把第几次加载次数作为参数

  callbackcount =that.data.callbackcount; //返回数据的个数

  //访问网络

  util.getSearchMusic(searchKeyword, searchPageNum,callbackcount, function(data){

  console.log(data)

  //判断是否有数据,有则取数据

  if(data.data.song.curnum != 0){

  let searchList = [];

  //如果isFromSearch是true从data中取出数据,否则先从原来的数据继续添加

  that.data.isFromSearch ? searchList=data.data.song.list : searchList=that.data.searchSongList.concat(data.data.song.list)

  that.setData({

  searchSongList: searchList, //获取数据数组

  zhida: data.data.zhida, //存放歌手属*的对象

  searchLoading: true //把"上拉加载"的变量设为false,显示

  });

  //没有数据了,把“没有数据”显示,把“上拉加载”隐藏

  }else{

  that.setData({

  searchLoadingComplete: true, //把“没有数据”设为true,显示

  searchLoading: false //把"上拉加载"的变量设为false,隐藏

  });

  }

  })

  },

  //点击搜索按钮,触发事件

  keywordSearch: function(e){

  this.setData({

  searchPageNum: 1, //第一次加载,设置1

  searchSongList:[], //放置返回数据的数组,设为空

  isFromSearch: true, //第一次加载,设置true

  searchLoading: true, //把"上拉加载"的变量设为true,显示

  searchLoadingComplete:false //把“没有数据”设为false,隐藏

  })

  this.fetchSearchList();

  },

  //滚动到底部触发事件

  searchScrollLower: function(){

  let that = this;

  if(that.data.searchLoading && !that.data.searchLoadingComplete){

  that.setData({

  searchPageNum: that.data.searchPageNum+1, //每次触发上拉事件,把searchPageNum+1

  isFromSearch: false //触发到上拉事件,把isFromSearch设为为false

  });

  that.fetchSearchList();

  }

  }

  })

  util.js:

  [javascript] view plain copyfunction getSearchMusic(keyword, pageindex, callbackcount, callback){

  wx.request({

  url: 'c.y.qq/soso/fcgi-bin/search_for_qq_cp',

  data: {

  g_tk: 5381,

  uin: 0,

  format: 'json',

  inCharset: 'utf-8',

  outCharset: 'utf-8',

  notice: 0,

  platform: 'h5',

  needNewCode: 1,

  w: keyword,

  zhidaqu: 1,

  catZhida: 1,

  t: 0,

  flag: 1,

  ie: 'utf-8',

  sem: 1,

  aggr: 0,

  perpage: 20,

  n: callbackcount, //返回数据的个数

  p: pageindex,

  remoteplace: 'txt.mqq.all',

  _: Date.now()

  },

  method: 'GET',

  header: {'content-Type': 'application/json'},

  success: function(res){

  if(res.statusCode == 200){

  callback(res.data);

  }

  }

  })

  }

  module.exports = {

  getSearchMusic: getSearchMusic

  }

  wxss:

  [css] view plain copypage{

  display: flex;

  flex-direction: column;

  height: 100%;

  }

  /*搜索*/

  .search{

  flex: auto;

  display: flex;

  flex-direction: column;

  background: #fff;

  }

  .search-bar{

  flex: none;

  display: flex;

  align-items: center;

  justify-content: space-between;

  padding: 20rpx;

  background: #f4f4f4;

  }

  .search-wrap{

  position: relative;

  flex: auto;

  display: flex;

  align-items: center;

  height: 80rpx;

  padding: 0 20rpx;

  background: #fff;

  border-radius: 6rpx;

  }

  .search-wrap .icon-search{

  margin-right: 10rpx;

  }

  .search-wrap .search-input{

  flex: auto;

  font-size: 28rpx;

  }

  .search-cancel{

  padding: 0 20rpx;

  font-size: 28rpx;

  }

  /*搜索结果*/

  .search-result{

  flex: auto;

  position: relative;

  }

  .search-result scroll-view{

  position: absolute;

  bottom: 0;

  left: 0;

  right: 0;

  top: 0;

  }

  .result-item{

  position: relative;

  display: flex;

  flex-direction: column;

  padding: 20rpx 0 20rpx 110rpx;

  overflow: hidden;

  border-bottom: 2rpx solid #e5e5e5;

  }

  .result-item .media{

  position: absolute;

  left: 16rpx;

  top: 16rpx;

  width: 80rpx;

  height: 80rpx;

  border-radius: 999rpx;

  }

  .result-item .title,

  .result-item .subtitle{

  overflow: hidden;

  text-overflow: ellipsis;

  white-space: nowrap;

  line-height: 36rpx;

  }

  .result-item .title{

  margin-bottom: 4rpx;

  color: #000;

  }

  .result-item .subtitle{

  color: #808080;

  font-size: 24rpx;

  }

  .result-item:first-child .subtitle text{

  margin-right: 20rpx;

  }

  .result-item:not(:first-child) .subtitle text:not(:first-child):before{

  content: '/';

  margin: 0 8rpx;

  }

  .loading{

  padding: 10rpx;

  text-align: center;

  }

  .loading:before{

  display: inline-block;

  margin-right: 5rpx;

  vertical-align: middle;

  content: '';

  width: 40rpx;

  height: 40rpx;

  background: url(../../images/icon-loading.png) no-repeat;

  background-size: contain;

  animation: rotate 1s linear infinite;

  }

  .loadingplete:before{

  display: none;

  }

  微信小程序分页加载运行效果:

  微信小程序分页加载怎么开发大家看完资料都知道了吗?参照上述流程和相关代码,就可以进行小程序分页的设置了,从文中的资料可以看出分页加载的用处也是蛮大的,更多相关资料请关注微信小程序商店。

  

  微信小程序下拉分页源码

  微信小程序分页效果,小程序分页滑动效果怎么弄

  微信小程序列表分页操作步骤和相关代码