美文网首页
小程序下拉刷新与上拉加载

小程序下拉刷新与上拉加载

作者: can2014ky | 来源:发表于2019-05-20 09:59 被阅读0次

    下拉刷新与上拉加载,是移动端项目必不可少的功能,可以方便用户操作,提高用户体验;其中,下拉刷新相当于浏览器中的刷新按钮或F5;而上拉加载则相当于分页加载。

    小程序的每个页面都有一个用来注册页面page函数,这个函数参数除了有数据、生命周期以外,还有一些用来监听用户操作页面的相关处理函数——onPullDownRefreshonReachBottom

    1、下拉刷新onPullDownRefresh

    1)在json文件中配置"enablePullDownRefresh": true

    1. 当下拉时,发送数据请求,此时参数page=1
    
    onPullDownRefresh() {
    
        wx.showNavigationBarLoading();
    
        const that = this;
    
        this.setData({
    
            page: 1,
    
        })
    
        wx.request({
    
          url: 'https://xxx/?page=1',
    
          method: "GET",
    
          success:  (res) => {
    
            const { code, data } = res.data;
    
            if( code === 1) {
    
                 that.setData({
    
                      list:  data,
    
                });
    
            }
    
          },
    
         fail:  (err) => {
    
            console.log(err)
    
          },
    
         complete: () => {
    
            wx.hideNavigationBarLoading();
    
            wx.stopPullDownRefresh();
    
         }
    
      })
    
    }
    

    2、上拉加载onReachBottom

    onReachBottom () {
    
        const that = this;
    
        // 是否还有更多,来决定是否发送请求
    
        const { curPage, totalPage } = this.data;
    
        if( curPage >= totalPage) {
    
            return false
    
        }
    
        wx.showLoading({
    
          title: '加载中...',
    
        })
    
        this.setData({
    
            page: page + 1,
    
        })
    
        wx.request({
    
          url: `https://xxx/?page=${that.data.page}`,
    
          method: "GET",
    
          success: (res) => {
    
            const { code, data } = res.data;
    
            let newData = [];
    
            if(code === 1) {
    
                that.setData({
    
                    list: that.data.list.concat(data);
    
                })                    
    
            }
    
         },
    
         fail: (err) => {
    
             console.log(err)
    
          },
    
          complete() {
    
             wx.hideLoading();
    
          }
    
        })
    
    }
    

    总结:以上基本可实现下拉刷新和上拉加载功能,但是,上述代码结合实际场景,根据后台返回的数据是否还有下一页来判断是否继续请求数据;此外,上拉加载的页面交互处理也是特别需要注意的。

    相关文章

      网友评论

          本文标题:小程序下拉刷新与上拉加载

          本文链接:https://www.haomeiwen.com/subject/zvehzqtx.html