微信小程序中的加载更多(即列表分页)

本文详细介绍了如何在微信小程序中实现下拉刷新和上拉加载更多功能,包括app.json配置、wxml布局、js逻辑处理及数据请求过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.app.json中:

"window": {

  "enablePullDownRefresh": true //是否开启当前页面下拉刷新

}

2.wxml中:

<view class="info" wx:for="{{contentlist}}" wx:key="key">
    <input hidden="{{hidden}}" value="{{item.id}}"/>
    <text>{{item.title}}</text>
    <text class="time">{{item.inputtime}}</text>
    <view>
        <text>{{item.content}}</text>
    </view>
</view>

3.js中:

data: {
    hidden: true,                          //隐藏表单控件
        page: 1,                              //当前请求数据是第几页
        pageSize: 10,                          //每页数据条数
        hasMoreData: true,                      //上拉时是否继续请求数据,即是否还有更多数据
        contentlist: [],                        //获取的数据列表,以追加的形式添加进去
},
// 获取分页列表
getInfo: function (message) {
    var that = this;
    wx.showNavigationBarLoading()              //在当前页面显示导航条加载动画
    wx.showLoading({                        //显示 loading 提示框
        title: message,
    })
    wx.request({
        url: 'http://localhost:88/wechat/test.php',    //本地设置不校验合法域名
        data: { page: that.data.page, count: that.data.pageSize },
        method: 'post',
        header: { 'content-type': 'application/x-www-form-urlencoded' },
        success: function (res) {
            var contentlistTem = that.data.contentlist;
            if (res.data.length > 0) {
                wx.hideNavigationBarLoading()     //在当前页面隐藏导航条加载动画
                wx.hideLoading()               //隐藏 loading 提示框
                if (that.data.page == 1) {
                    contentlistTem = []
                }
                var contentlist = res.data;
                if (contentlist.length < that.data.pageSize) {
                    that.setData({
                        contentlist: contentlistTem.concat(contentlist),
                        hasMoreData: false
                    })
                } else {
                    that.setData({
                        contentlist: contentlistTem.concat(contentlist),
                        hasMoreData: true,
                        page: that.data.page + 1
                    })
                }
            }
        },
        fail: function (res) {
            wx.hideNavigationBarLoading()
            wx.hideLoading()
            fail()
        },
        complete: function (res) {

        },
    })
},

/**
 * 生命周期函数--监听页面初次渲染完成
 */
onLoad: function (options) {
    // 页面初始化 options为页面跳转所带来的参数
    var that = this
    that.getInfo('正在加载数据...')
},

/**
 * 页面相关事件处理函数--监听用户下拉动作
 */
onPullDownRefresh: function () {
    this.data.page = 1
    this.getInfo('正在刷新数据')
},

/**
 * 页面上拉触底事件的处理函数
 */
onReachBottom: function () {
    if (this.data.hasMoreData) {
        this.getInfo('加载更多数据')
    } else {
        wx.showToast({
            title: '没有更多数据',
        })
    }
},

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值