您的位置:

微信小程序实现页面刷新的方法与技巧

一、页面自带下拉刷新

在微信小程序中,页面自带下拉刷新功能。只需要在需要刷新的页面的json文件中开启enablePullDownRefresh属性即可。
代码示例:

<!-- xxx.json -->
{
  "navigationBarTitleText": "xxx",
  "enablePullDownRefresh": true
}

在wxml文件中,需要为页面滚动区域的最外层添加scroll-view标签,并添加bindscrolltolower和bindscrolltoupper两个事件监听函数。
代码示例:

<!-- xxx.wxml -->
<scroll-view scroll-y="true" bindscrolltolower="handleScrollLower" bindscrolltoupper="handleScrollUpper">
  <!-- 页面内的元素 -->
</scroll-view>

在对应的js文件中,编写处理下拉刷新的函数,其中需要调用wx.stopPullDownRefresh()来停止刷新。
代码示例:

// xxx.js
Page({
  handleScrollUpper() {
    wx.startPullDownRefresh({
      success: () => {
        setTimeout(() => {
          wx.stopPullDownRefresh();
        }, 2000);
      }
    })
  }
})

以上代码实现了用户下拉刷新页面时,调用handleScrollUpper函数,同时自动调用页面刷新功能。
注意:刷新完成后,需调用wx.stopPullDownRefresh()手动停止刷新,否则刷新图标会一直存在。

二、手动刷新页面

有时页面自带的下拉刷新无法满足需求,需要手动实现页面刷新功能。可以在页面的wxml中定义一个按钮,然后在对应的js文件中为按钮添加点击事件,通过js代码实现页面的局部更新。代码示例:

<!-- xxx.wxml -->
<button bindtap="refresh">点击刷新</button>
// xxx.js
Page({
  data: {
    list: ["数据1", "数据2", "数据3"]
  },
  refresh() {
    // 模拟请求数据
    setTimeout(() => {
      this.setData({
        list: ["数据4", "数据5", "数据6"]
      })
    }, 2000)
  }
})

以上代码模拟了一个数据请求,请求完成后,通过this.setData方法更新list数据,从而实现局部刷新的目的。

三、使用第三方组件实现页面刷新

在微信小程序的官方组件库中,目前并没有现成的下拉刷新组件,但可以使用第三方组件实现。
以weui-miniprogram组件库为例,该组件库中提供了loadmoreloadmore-line两个组件可以实现下拉刷新功能。代码示例:

// xxx.json
{
  "navigationBarTitleText": "xxx",
  "usingComponents": {
    "load-more": "/miniprogram_npm/weui-miniprogram/loadmore/loadmore"
  }
}
<!-- xxx.wxml -->
<load-more loading="{{loading}}" loading-text="正在加载数据...">
  <!-- 列表的数据 -->
  <view wx:for="{{list}}" wx:key="index">{{item}}</view>
</load-more>
// xxx.js
Page({
  data: {
    list: ["数据1", "数据2", "数据3"],
    loading: false
  },
  onLoad() {
    // 模拟请求数据
    setTimeout(() => {
      this.setData({
        list: ["数据1", "数据2", "数据3"],
        loading: false
      })
    }, 2000)
  },
  handleLoadMore() {
    this.setData({
      loading: true
    });
    // 模拟请求数据
    setTimeout(() => {
      this.setData({
        list: ["数据1", "数据2", "数据3", "数据4", "数据5", "数据6"],
        loading: false
      })
    }, 2000)
  }
})

以上代码中,通过在json文件中加入usingComponents字段,引入了weui-miniprogram组件库中的loadmore组件。
在wxml文件中,使用loadmore组件包裹需要刷新的区域,同时填写loading和loading-text属性,表示加载状态。
在对应的js文件中,需要在Page函数中声明组件库中的组件,同时编写handleLoadMore函数,响应组件的刷新事件,并通过this.setData方法更新list数据,实现页面刷新。

微信小程序实现页面刷新的方法与技巧

2023-05-18
微信小程序返回上一页刷新方法

2023-05-17
实战教程:微信小程序上拉刷新最佳实践

2023-05-17
微信小程序js动画,微信小程序各种动画

本文目录一览: 1、微信小程序—用动画实现自定义轮播图 2、重磅:微信小程序发布WeUI.js 官方视觉组件库! 3、微信小程序之自定义模态弹窗(带动画)实例 微信小程序—用动画实现自定义轮播图 新接

2023-12-08
微信小程序js动画,微信小程序各种动画

本文目录一览: 1、微信小程序—用动画实现自定义轮播图 2、重磅:微信小程序发布WeUI.js 官方视觉组件库! 3、微信小程序之自定义模态弹窗(带动画)实例 微信小程序—用动画实现自定义轮播图 新接

2023-12-08
python刷题的小技巧,python制作刷题软件

2022-11-21
微信小程序40029的详细阐述

2023-05-17
jsp实现微信小程序(微信小程序 html5)

本文目录一览: 1、你好,请问你把jsp文件转成微信小程序做到了吗 2、开发微信小程序需要哪些技术 3、微信收集信息小程序怎么做 4、jsp网站转换成微信小程序 你好,请问你把jsp文件转成微信小程序

2023-12-08
印象笔记记录java学习(Java成长笔记)

2022-11-12
php开发微信小程序步骤,thinkphp开发微信小程序

2022-11-28
微信小程序第三方js(微信小程序第三方支付平台)

本文目录一览: 1、怎样使用微信小程序的第三方js库? 2、重磅:微信小程序发布WeUI.js 官方视觉组件库! 3、微信小程序平台开发需要哪些技术 4、微信小程序是用什么技术实现的? 5、微信小程序

2023-12-08
js和微信小程序(js和微信小程序关联)

本文目录一览: 1、重磅:微信小程序发布WeUI.js 官方视觉组件库! 2、微信小程序wxml中使用js函数 3、微信小程序wxs的使用(当页面数据渲染前添加js操作) 4、怎样用js开发微信小程序

2023-12-08
微信小程序瀑布流布局实现技巧

2023-05-17
微信小程序json与js的关系,微信小程序解析json

本文目录一览: 1、微信小程序是用什么技术实现的? 2、微信小程序json数据如何处理? 3、微信小程序模拟后台后从json取到的数据在js文件中按ID分类时出现问题 4、有什么作用下,wxss,wx

2023-12-08
js高级程序设计笔记14(js高级程序设计笔记14页)

本文目录一览: 1、JavaScript高级程序设计 该怎么看 2、JavaScript学习笔记之数组基本操作示例 3、JS中有关sort以及return的问题 JavaScript高级程序设计 该怎

2023-12-08
微信小程序js改变dom(微信小程序appjs)

本文目录一览: 1、微信小程序 动态修改元素class 2、微信小程序点击切换class 3、微信小程序怎么将EBD格式的文件转化成json? 4、微信小程序不能操作dom吗 5、微信小程序怎么开发

2023-12-08
java方法整理笔记(java总结)

2022-11-08
微信小程序php开发,微信小程序php后端搭建

2023-01-06
jsp程序开发学习笔记2,jsp程序设计题库

本文目录一览: 1、《JSP&Servlet学习笔记》pdf下载在线阅读,求百度网盘云资源 2、林信良编著jsp&servlet学习笔记第2版课后答案吗 3、jsp有没有快速掌握的办法呀? 4、要学J

2023-12-08
python技巧笔记(python自学笔记)

2022-11-12