美文网首页
微信小程序 刷新加载更多

微信小程序 刷新加载更多

作者: wanTag | 来源:发表于2018-07-26 16:58 被阅读36次

    微信小程序 刷新加载更多

    wxml:
    <view class="search">
    
      <view class="search-result">
        <scroll-view scroll-y="true" bindscrolltolower="searchScrollLower">
          <view class="result-item" wx:for="{{searchResultList}}" wx:key="unique" data-data="{{item}}">
          
            <image class="image_frame" mode="scaleToFill" src="{{item.img}}" />
            <view class='view_content'>
              <text>{{item.title}}</text>
              <text>{{item.profile}}</text>
            </view>
    
    
          </view>
          <view class="loading" hidden="{{!searchLoading}}">正在载入更多...</view>
          <view class="loading complete" hidden="{{!searchLoadingComplete}}">已加载全部</view>
        </scroll-view>
      </view>
    </view>
    
    js:
    var util = require('../../utils/pulldown.js')
    
    Page({
    
      data: {
        searchKeyword: '', //需要搜索的字符
        searchResultList: [], //放置返回数据的数组
        isFromSearch: true, // 用于判断searchSongList数组是不是空数组,默认true,空的数组
        searchPageNum: 1, // 设置加载的第几次,默认是第一次
        callbackcount: 10, //返回数据的个数
        searchLoading: false, //"上拉加载"的变量,默认false,隐藏
        searchLoadingComplete: false //“没有数据”的变量,默认false,隐藏
      },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
        this.setData({
          searchPageNum: 1, //第一次加载,设置1
          searchSongList: [], //放置返回数据的数组,设为空
          isFromSearch: true, //第一次加载,设置true
          searchLoading: true, //把"上拉加载"的变量设为true,显示
          searchLoadingComplete: false //把“没有数据”设为false,隐藏
        })
        // 显示导航栏loading
        wx.showNavigationBarLoading();
        // 调用接口加载数据
        this.fetchSearchList();
        // 隐藏导航栏loading
        wx.hideNavigationBarLoading();
      },
    
      // 下拉刷新
      onPullDownRefresh: function() {
        this.setData({
          searchPageNum: 1, //第一次加载,设置1
          searchSongList: [], //放置返回数据的数组,设为空
          isFromSearch: true, //第一次加载,设置true
          searchLoading: true, //把"上拉加载"的变量设为true,显示
          searchLoadingComplete: false //把“没有数据”设为false,隐藏
        })
        // 显示导航栏loading
        wx.showNavigationBarLoading();
        // 调用接口加载数据
        this.fetchSearchList();
        // 隐藏导航栏loading
        wx.hideNavigationBarLoading();
        // 当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新
        wx.stopPullDownRefresh();
      },
      // 上拉加载
      onReachBottom(e) {
        let that = this;
        if (that.data.hasMore) {
          that.setData({
            searchPageNum: that.data.searchPageNum + 1, // 每次触发上拉事件,把pageNum+1
            isFromSearch: false // 触发到上拉事件,把isFirstLoad设为为false
          });
    
          that.fetchSearchList();
        }
      },
    
      //搜索,访问网络
      fetchSearchList: function() {
        let that = this;
        let searchKeyword = that.data.searchKeyword, //输入框字符串作为参数
          searchPageNum = that.data.searchPageNum, //把第几次加载次数作为参数
          callbackcount = that.data.callbackcount; //返回数据的个数
        //访问网络
        util.getSearch(searchKeyword, searchPageNum, callbackcount, function(data) {
          console.log(data)
          //判断是否有数据,有则取数据
          if (data.d.length != 0) {
            let searchList = [];
            //如果isFromSearch是true从data中取出数据,否则先从原来的数据继续添加
            that.data.isFromSearch ? searchList = data.d : searchList = that.data.searchResultList.concat(data.d)
    
            that.setData({
              searchResultList: searchList, //获取数据数组
              searchLoading: true //把"上拉加载"的变量设为false,显示
            });
    
            console.log("searchResultList = " + that.data.searchResultList);
            //没有数据了,把“没有数据”显示,把“上拉加载”隐藏
          } else {
            that.setData({
              searchLoadingComplete: true, //把“没有数据”设为true,显示
              searchLoading: false //把"上拉加载"的变量设为false,隐藏
            });
          }
        })
    
      },
     
      //滚动到底部触发事件
      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();
        }
      }
    })
    
    pulldown.js
    function getSearch(keyword, pageindex, callbackcount, callback) {
      wx.request({
        url: 'https://xiaoce-timeline-api-ms.juejin.im/v1/getListByLastTime?pageNum=' + pageindex,
        data: [],
        method: 'GET',
        header: {
          'content-Type': 'application/json'
        },
        success: function(res) {
          if (res.statusCode == 200) {
            callback(res.data);
          }
        }
      })
    }
    
    module.exports = {
      getSearch: getSearch
    }
    
    注意

    要先配置request,要不然报错

    22.png 11.png

    相关文章

      网友评论

          本文标题:微信小程序 刷新加载更多

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