千家信息网

如何实现小程序中下拉刷新和上拉加载功能

发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,这篇文章主要介绍"如何实现小程序中下拉刷新和上拉加载功能",在日常操作中,相信很多人在如何实现小程序中下拉刷新和上拉加载功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年02月22日如何实现小程序中下拉刷新和上拉加载功能

这篇文章主要介绍"如何实现小程序中下拉刷新和上拉加载功能",在日常操作中,相信很多人在如何实现小程序中下拉刷新和上拉加载功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何实现小程序中下拉刷新和上拉加载功能"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

下拉刷新及上拉加载wxml文件编写

当我们使用scroll-view滑动组件展示列表时,其本身就存在下拉刷新和上拉加载的触发函数

  
  • scroll-y: 是否允许纵向滚动,默认为false,这里我们设置为true

  • upper-threshold: 距顶部/左边多远时,触发 scrolltoupper 事件(下拉刷新)

  • bindscrolltoupper:滚动到顶部/左边时触发,这里设置滚动到顶部需要触发的函数

  • bindscrolltolower:滚动到顶部/右边时触发

引入line-ui框架

这里我使用的下拉刷新和上拉加载展示组件是lin-ui框架提供的,这里我说下如何引入lin-ui框架:

lin-ui官方文档地址

//在小程序项目目录中执行下面的函数npm install lin-ui

然后在需要引入组件的页面的json文件中进行引入

"usingComponents": {    "l-loadmore":"/miniprogram_npm/lin-ui/loadmore/index",    "l-loading":"/miniprogram_npm/lin-ui/loading/index",  },

这样lin-ui组件就引入成功了

js代码编写

data: {    downfresh:false,//底部加载展示控制    upfresh:false//顶部加载展示控制  },

首先在data中设置加载组件是否显示,默认都不显示

下拉刷新js代码

//下拉刷新refresh(){    if(this.data.upfresh){      console.log("还没刷新完成")      return;    }    var that = this;    this.setData({      upfresh: true,      // upfresh:false    })       setTimeout(function() {      //updateData为自己的数据更新逻辑代码      that.updateData(true,()=>{        that.setData({          upfresh: false,      });     })      // wx.hideLoading();    console.info('下拉刷新加载完成.');  }, 500);  },          //更新数据   updateData:function(tail, callback) {      var that = this;    console.log("updatedata-=-=seea"+that.data.searchValue)    wx.request({      url: app.gBaseUrl + 'compony-detail/page',      method: 'GET',      data: {        page: 0,        count: 20,        componyname:that.data.searchValue      },      success: (res) => {        this.setData({          componys: res.data        })        if (callback) {          callback();        }      }    })   },

上拉加载js代码

 /**   * 滑动到底部加载更多   */  getMore(){    // downloadingData=this.data.downloadingData    if(this.data.downfresh){      console.log("还没加载完成")      return;    }   var that = this;    this.setData({      downfresh: true,      // upfresh:false    })       this.setData({      downloadingData: true      // upfresh:false    })    setTimeout(function() {      that.loadData(true,()=>{        that.setData({        downfresh: false      });     })      // wx.hideLoading();    console.info('上拉数据加载完成.');  }, 1000);  },          loadData: function(tail, callback) {    var that = this;    wx.request({      url: app.gBaseUrl + 'compony-detail/page',      method: 'GET',      data: {        page: that.data.componys.length,        count: 20,        componyname:that.data.searchValue      },      success: (res) => {        // console.log(JSON.stringify(res.data))        that.setData({          componys: that.data.componys.concat(res.data),        });        if (callback) {          callback();        }      }    })  },

整个下拉刷新和上拉加载的功能我们就已经实现了,主要就是利用到了scroll-view的组件特性,根据触发的时机来控制记载组件的显隐,整体实现并不是很难,具体代码可根据自己的实际情况做适当调整哦。

到此,关于"如何实现小程序中下拉刷新和上拉加载功能"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0