作者:小飞燕 发布时间:2021-04-12 10:41:36
导语本文整理了全网深受用户关注的个微信小程序数据分页怎么实现经验知识,可以帮助您全面了解代理怎么做,小白也能成为高手,跟随小编一起来看一看吧!
实现微信小程序的数据分页就像开发小程序一样,需要相应的小程序代码。如果没有正确的代码,就没有办法达到数据分页的效果。下面是代码,希望对大家有帮助。
当用户打开一个小程序页面时,假设后台的数据量巨大,所有的数据会一次性返回给客户端,这样会减慢页面的打开速度。而且当用户只看上面的内容而不需要看下面的内容时,也会浪费用户流量。从优化的角度考虑,后台不应该一次返回所有的数据,当用户需要再次关闭时,会加载更多的数据。
业务要求:
当列表滚动到底部时,继续向上拉并加载更多内容
强制参数:
(1)pageindex: 1 //什么时候加载
(2)回呼计数: 15 //要返回的数据数量
其他参数:
根据界面所需的参数
实施原则:
第一次开发调用applet接口时,传递两个必要的参数(第一次加载要返回的数据个数为15),其他参数(要搜索的字符串)发送到后台,后台返回第一个数据。在请求成功的回调函数中,判断返回的数据是否为;0,如果是,取出数据,渲染视图层,在列表底部显示“上拉加载”;如果没有,则没有数据可用,列表底部显示“无更多”,同时隐藏“上拉负载”。
当用户已经滚动到列表的底部时(这里使用applet提供的scroll-view组件的bindscrolltolower事件),bindscrolltolower事件被触发,参数pageindex为1,然后两个必要的参数(第二次加载要返回的数据数为15)和其他参数(要搜索的字符串)被给后台,后台将剩余的数据返回给前台,前台根据原始数据添加数据。
主页结果如下:
1.index.wxml
搜索
{{item.songname}}
{{item.name}}
加载更多.
全部加载
2.index.wxss
第{
display: flex
flex-direction:柱;
高度:;
}
/*搜索*/。搜索{
flex: auto
display: flex
flex-direction:柱;
背景# fff
}。搜索栏{
flex: none
display: flex
align-items : center;
justice-content :空格;
padding: 20rpx
background : # f4 f4;
}。搜索包装{
相对位置:
flex: auto
display: flex
align-items : center;
height: 80rpx
padding: 0 20rpx
背景# fff
border-radius : 6rpx;
}。搜索结束。图标-搜索{
margin-right : 10 rpx;
}。搜索结束。搜索-输入{
flex: auto
font-size : 28 rpx;
}。搜索-取消{
padding: 0 20rpx
font-size : 28 rpx;
}
/*搜索结果*/。搜索结果{
flex: auto
相对位置:
}。搜索-结果滚动-查看{
位置:
bottom : 0;
left : 0;
right : 0;
top : 0;
}。结果-项目{
相对位置:
display: flex
flex-direction:柱;
padd : 20 rpx 0 20 rpx 110 rpx;
隐藏飞越:
border-bottom : 2r px solid # e5e 5e 5;
}。结果项。媒体{
位置:
left: 16rpx
top: 16rpx
width: 80rpx
height: 80rpx
border-radius : 999 rpx;
}。结果项。标题。结果项。副标题{
隐藏飞越:
text-overflow:省略号;
white-space : nowrap;
line-height : 36rpx;
}。结果项。标题{
margin-bottom : 4 rpx;
color: # 000
}。结果项。副标题{
color: # 808080
font-size : 24 rpx;
}。result-item:first-child。字幕文本{
margin-right : 20 rpx;
}。result-item : not(: first-child)。字幕文本: not(: first-child): before {
content : '/';
margin: 0 8rpx
}。正在加载{
padding: 10rpx
text-align:中心;
}
. loading:before{
display:内联块;
右边距:5 rpx;
垂直对齐: 中间;
内容: " ";
宽度: 40rpx
高度: 40rpx
背景: url(./index/images/icon-loading.png)不重复;
背景尺寸:容器;
动画:旋转1s线性无限;
}。loading.complete:before{
显示器:无;
}
3.index.js
var util=require('././utils/util.js ')
页面({
数据: {
searchkeyword: ' ',//需要搜索的字符
searchsonglist: [],//放置返回数据的数组
isfromsearch: true,//用于判断searchsonglist数组是不是空数组,默认没错,空的数组
searchpagenum: 1,//设置加载的第几次,默认是第一次
callbackcount: 15,//返回数据的个数
searchloading: false,//'上拉加载'的变量,默认假的,隐藏
搜索加载完成: false//没有数据"的变量,默认假的,隐藏
},
//输入框事件,每输入一个字符,就会触发一次
bindkeywordpinput :函数(e){
console.log('输入框事件)
this.setdata({
搜索关键字: e . detail。价值
})
},
//搜索,访问网络
fetchsearchlist:功能{
让那个=这个;
让搜索关键字=那个。数据。搜索关键字,//输入框字符串作为参数
搜索页面编号=那个。数据。搜索页码,//把第几次加载次数作为参数
回调计数=那个。数据。回调计数;//返回数据的个数
//访问网络
util。getsearch music(搜索关键字,searchpagenum,callbackcount,function(data){
console.log(数据)
//判断是否有数据,有则取数据
if(data.data.song.curnum!=0){
让搜索列表=[];
//如果isfromsearch是真实的从数据中取出数据,否则先从原来的数据继续添加
那个。data.isfromsearch?搜索列表=数据。数据。歌曲。list : searchlist=那个。数据。searchsonglist。concat(数据。数据。歌曲。列表)
that.setdata({
searchsonglist: searchlist,//获取数据数组
zhida: data.data.zhida,//存放歌手属性的对象
搜索负载: true//把'上拉加载'的变量设为假的,显示
});
//没有数据了,把"没有数据"显示,把"上拉加载"隐藏
}else{
that.setdata({
searchloadingcomplete: true,//把"没有数据"设为没错,显示
搜索加载: false//把'上拉加载'的变量设为假的,隐藏
});
}
})
},
//搜索按钮,触发小程序按钮事件
keywordsearch:函数(e){
this.setdata({
searchpagenum: 1,//第一次加载,设置一
searchsonglist:[],//放置返回数据的数组,设为空
isfromsear
ch:真,//加载,设置为真
searchloading: true,//将变量“上拉加载”设置为true并显示
search loading complete : false//将“无数据”设置为false并隐藏
})
this.fetchsearchlist
},
//滚动到底部触发事件
searchscrolllower:函数{
让那个=这个;
if(that.data.searchloading!that . data . search loading complete){
that.setdata({
search page enum : that . data . searchpageenum1,//每次触发上拉事件时,search page enum 1
isfromsearch: false //触发上拉事件,并将isfromsearch设置为false
});
that.fetchsearchlist
}
}
})
微信小程序数据分页的介绍和实现数据分页所需的代码都在本文中。仔细阅读小编给出的信息,就可以拿代码实现小程序数据分页的功能了。更多信息,请关注源代理网的小程序渠道。
下面是题目的开头。微信小程序如何链接java服务器接口?标题到此结束
微信小程序如何链接java服务器接口?亲爱的有需要的朋友,想知道微信小程序如何链接java服务器界面?以上是小编编译的微信小程序如何链接到java服务器接口的内容。
1.准备获取appid和appkey(api密钥)
微信支付申请通过后,你就可以收到微信发给你的邮件,里面有你账户的相关参数。
第一个坑:公共平台的密钥和商户号的密钥不一样!微信支付验证成功后,会收到一封带有appid商户号、商户后台登录号、密码的邮件,登录商户后台:账户设置-安全设置-切换到api安全,证书。下面有一个api键,填写一个字符串保存。这个手动设置的密钥用于接下来的两个签名!
2.服务器端工作流
跳过流程图中的前三个步骤
2.1调用统一订购接口获取预付费id
2.1.1准备所需参数
统一订单接口参数:appid、mch_id、nonce_str、body、out_trade_no、total_fee、spbill_create_ip、notify_url、trade_type。这九个参数部分由客户端传输,其中notify_url是异步通知(微信通知的应用服务器的url地址)
详见https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?章节=9_1
第二个坑:以上九个参数的变量名必须为小写,total_fee为大于0的整数。同一应用的安卓和苹果分配的appid不同,客户端可以携带appid进行请求
对参数进行签名
根据支付接口文档中给出的签名说明:首先需要根据ascii码对参数进行排序。如果该值为空,则不涉及排序,并且涉及排序的字段不包括appkey(api key)。排序后,将排序后的字段填充到xml中,同时将排序后的字符串与密钥及其值拼接,然后用md5加密,再将小写转换为大写,即生成的符号值。比较后,在xml中插入符号。然后就可以开始向微信的统一订单界面发送请求,领取预付款了。
以下是我自己的小程序代码,大部分和网上的一样:
//这是将来自reqinfo对象的参数放入一个映射中
[java]查看普通copy public stringgetxmlstr(wcpaygetpreferidreqinforeqinfo){
mapparams=new hashmap
params.put('appid ',req info . geta ppid);//appid以上,关注案例
params.put('mch_id ',req info . getmchid);//商户id
params.put('key ',req info . getkey);//appkey(api键)
params.put('nonce_str ',wcpayutils . getrandomnumber(32));//32位随机数
params.put('body ',req info . get body);//商品描述
params.put('out_trade_no ',req info . getoutradeno);//应用后台生成的订单标识
params.put('total_fee ',req info . gettotalfee);//总金额
params.put('spbill_create_ip ',req info . getspbillreateip);//用户终端ip
params.put('notify_url ',' application/test ');//异步通知url
params.put('trade_type ',req info . getradetype);//交易方式请参考微信界面文档
尝试{
returnwcpayutils . getxmlfrompramap(params);
}catch(例外e) {
日志工厂。getlog ('message ')。调试(“生成xml字符串时出错”);
}
返回null
}
以上是如何将java服务器接口链接到小编编译的微信小程序。希望有需要的人可以学习。想了解更多,请多关注源社网的小节目频道。这个网站的内容在不断更新。
上一篇:小程序头部字体大小怎么设置
350位用户关注
1073位用户关注
756位用户关注
234位用户关注
287位用户关注
487位用户关注
69位用户关注
77位用户关注
104位用户关注
572位用户关注
84位用户关注
13位用户关注