以下是.js代码
// pages/shopList/shopList.js
Page({
/**
* 页面的初始数据
*/
data: {
// 判断要搜索什么信息
query:{},
// 存储请求的资源
shopList:[],
// 指定从第几页开始获取
page:1,
// 每次获取几条数据
pageSize:10,
// 总共有几条数据
total:0,
// 遮罩层
isloading:false
},
// 获取资源
getShopList(cb){
this.setData({
isloading:true
})
wx.showLoading({
title: '数据加载中...',
})
wx.request({
url: `https://www.escook.cn/categories/${this.data.query.id}/shops`,
method:'get',
// 分页设置
data:{
_page:this.data.page,
_limit:this.data.pageSize
},
success:(res)=>{
// 旧数据与新资源合并
this.setData({
shopList:[...this.data.shopList,...res.data],
total:res.header['X-Total-Count']*1
})
},
complete:()=>{
wx.hideLoading()
this.setData({
isloading:false
})
cb&&cb()
}
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.setData({
query:options
})
this.getShopList()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
// 设置标题
wx.setNavigationBarTitle({
title: this.data.query.name,
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
// 下拉恢复初始状态
this.setData({
total:0,
shopList:[],
page:1
})
wx.stopPullDownRefresh()
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
// 如果下划到数据获取完,弹出提示不在向服务器发起请求(性能优化的方式)
if(this.data.page*this.data.pageSize>=this.data.total)
return wx.showToast({
title: '数据加载完毕',
icon:'loading'
})
this.setData({
page:this.data.page+1
})
this.getShopList()
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})
以下是.json代码
{
"usingComponents": {
},
"onReachBottomDistance": 100,
"enablePullDownRefresh": true,
"backgroundColor": "#dddddd",
"backgroundTextStyle": "dark"
}