微信小程序下拉刷新获取数据和触底事件刷新实现

一、下拉刷新

1.json文件

说明:开启下拉刷新,然后设置窗口的背景色,方便观看。

javascript 复制代码
  "enablePullDownRefresh": true,
  "backgroundColor":"#FFC0CB"

2. js文件

说明:重新发起请求,并显示加载中

javascript 复制代码
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.getData()
    wx.showLoading({
      title: '加载中',
    })
  },

3.js文件

说明:当数据请求成功后,收回下拉刷新框并关闭加载中。

javascript 复制代码
      success: ({data}) => {
        // 数据加载成功,关闭下拉刷新
        wx.stopPullDownRefresh()
        // 成功后并关闭加载中
        wx.hideLoading()
      this.setData({
        arrList:data.data
      })
      },

二、触底事件刷新

2.json文件

说明:onReachBottomDistance定义了从页面底部的距离为50px,当滚动距离接近到这个值时,通常会触发一个函数或事件来加载更多内容。

javascript 复制代码
  "onReachBottomDistance": 50

说明:当距离页面底部为50px的时候,重新发起数据请求,并添加一个显示导航条加载动画(转态遮罩)

javascript 复制代码
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
   this.getData()
  //  在当前页面显示导航条加载动画,是一个状态遮罩
   wx.showNavigationBarLoading()


  },

说明:改造了getData()函数,将以前的数据和现在获取的数据进行相加。以此下拉获取更多的信息。

javascript 复制代码
  getData() {
    wx.request({
      url: '**',
      method:"GET",
      success: ({data:res}) => {
        // 数据加载成功,关闭下拉刷新
        wx.stopPullDownRefresh()
        // 成功后并关闭加载中
        wx.hideLoading()
        wx.hideNavigationBarLoading()
        let oldData=this.data.arrList
        let newData=oldData.concat(res.data)
      this.setData({
        arrList:newData
      })
      }
    })
  },

三、源码

3.1 xml文件

html 复制代码
<!-- 简单的前台页面 -->
<view>
<block wx:for="{{arrList}}" wx:key="id">
<view>猫儿</view>
<image src="{{item.url}}" mode=""/>
</block>
</view>

3.2 js文件

javascript 复制代码
// pages/refresh/refresh.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    arrList:[]
  },
  getData() {
    wx.request({
      url: '**',
      method:"GET",
      success: ({data:res}) => {
        // 数据加载成功,关闭下拉刷新
        wx.stopPullDownRefresh()
        // 成功后并关闭加载中
        wx.hideLoading()
       //关闭导航加载
        wx.hideNavigationBarLoading()
        let oldData=this.data.arrList
        let newData=oldData.concat(res.data)
      this.setData({
        arrList:newData
      })
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getData()
    wx.showLoading({
      title: '加载中',
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.getData()
    //清空数据,重新获取数据(归零)
    this.setData({
      arrList:[]
    })
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
   this.getData()
  //  在当前页面显示导航条加载动画,是一个状态遮罩
   wx.showNavigationBarLoading()


  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})
相关推荐
小雨cc5566ru10 小时前
uniapp+Android面向网络学习的时间管理工具软件 微信小程序
android·微信小程序·uni-app
小雨cc5566ru19 小时前
hbuilderx+uniapp+Android健身房管理系统 微信小程序z488g
android·微信小程序·uni-app
技术闲聊DD20 小时前
小程序原生-利用setData()对不同类型的数据进行增删改
小程序
康康爹20 小时前
uniapp 小程序,登录上传头像昵称页面处理步骤
小程序·uni-app
小雨cc5566ru20 小时前
微信小程序hbuilderx+uniapp+Android 新农村综合风貌旅游展示平台
android·微信小程序·uni-app
小雨cc5566ru20 小时前
小程序 uniapp+Android+hbuilderx体育场地预约管理系统的设计与实现
android·小程序·uni-app
DK七七1 天前
【PHP陪玩系统源码】游戏陪玩系统app,陪玩小程序优势
前端·vue.js·游戏·小程序·php·uniapp
Stanford_11061 天前
C++入门基础知识99——【关于C++ 成员运算符】
开发语言·c++·微信小程序·twitter·微信开放平台
正小安1 天前
MobX-Miniprogram:微信小程序的状态管理利器
微信小程序·小程序
GDAL2 天前
软考鸭微信小程序:助力软考备考的便捷工具
微信小程序·小程序