wxml代码:

<view class="scroll">
<!-- 绑订页面上拉触底事件的处理函数onReachBottom事件 -->
<scroll-view scroll-y="{{true}}" style="height: 400px;" bindscrolltolower="onReachBottom">
<view>{{test}}</view>
<!-- 参数循环data js中的data 数据 -->
<block wx:for="{{datas}}" wx:key="index">
<!-- 页面渲染 -->
<view>{{item.content}}</view>
</block>
</scroll-view> </view>

wxjs 代码:

// pages/pre/pre.js
Page({ /**
* 页面的初始数据
*/
data: {
focus:false,
test:'fsdafa',
datas:[
{id:1,content:'021/10/20'},
{id:2,content:'021/10/20'},
{id:3,content:'021/10/20'},
{id:4,content:'021/10/20'},
{id:5,content:'021/10/20'}
]
}, /**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () { let datass=[
{id:6,content:'021/10/20'},
{id:7,content:'021/10/20'},
{id:8,content:'021/10/20'},
{id:9,content:'021/10/20'}
]
let that=this
let arr=that.data.datas.concat(datass);
this.setData({
datas:arr
})
},

效果图:

第二种方法

wx.js

// pages/order/order.js
Page({ /**
* 页面的初始数据
*/
data: { foods: [],
// 定义一个默认的页数
page: 1,
// 每页显示的条数,后端也可以定义
limit: 4,
}, /**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let limit = this.data.limit
let page = this.data.page
let token = wx.getStorageSync('token')
wx.request({
url: 'http://www.yan.com/get_food', //仅为示例,并非真实的接口地址
header: { token },
method: 'POST',
data: {
limit,
page
},
success: res => {
this.setData({
foods: res.data.data
})
}
}) }, /**
* 详情
*/
details(e) {
let id = e.target.dataset.id;
wx.navigateTo({
url: '/pages/food_details/food_details?id=' + id,
}) }, /**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
let token = wx.getStorageSync('token')
let limit = this.data.limit
let page = this.data.page + 1
let foods = this.data.foods wx.request({
url: 'http://www.yan.com/get_food', //仅为示例,并非真实的接口地址
header: { token },
data: {
limit,
page
},
method: 'POST',
success: res => {
if (res.data.code == 200) {
//请求到后端的数据,让onLoad的 数据和请求到的数据进行合并
let new_foods = foods.concat(res.data.data);
wx.showToast({
title: '加载中',
icon: 'loading'
})
// 从新进行赋值,让他继续循环
this.setData({
foods: new_foods,
page: page + 1
})
} else if (res.data.code == 201) {
// 就是当前页大于最后一页啦,提示没有数据源啦
wx.showToast({
title: res.data.message,
})
return
} else {
console.log('数据错误')
} }
}) }, })

laravel 路由

Route::group(['namespace' =>'exams','middleware'=>'jwt'], function () {
Route::post('get_food','week2\ExamController@orderList');
Route::post('create_order','week2\ExamController@createOrder'); });

控制器代码

  /**
* 点餐列表
*/
public function orderList(Request $request){
// 接受当前页
$page=$request->post('page');
// 接受每页显示的条数
$limit=$request->post('limit');
// 获取总条数
$count=Food::count();
// 总页数
$lastPage=ceil($count/$limit);
if ($page>$lastPage){
return response()->json(['code'=>201,'message'=>'我是有底线的','data'=>'']);
}
// 计算偏移量
$offset=($page-1)*$limit;
$data=Food::orderBy('id','desc')->offset($offset)->limit($limit)->get();
return response()->json(['code'=>200,'message'=>'success','data'=>$data]); }

微信小程序下滑时能实现加载更多数据的更多相关文章

  1. 微信小程序 - (下拉)加载更多数据

    注意和后端配合就行了,前端也只能把数据拼接起来! 无论是下拉加载还是加载更多,一样的道理! 注意首次加载传递参数 注意每次加载数据数 wxml <view class='table-rank'& ...

  2. 微信小程序 scroll-view 完成上拉加载更多

    我们经常在软件客户端上看到这么一个功能,当我们阅读信息浏览到文章的末尾时,通常会加载出更多的信息.比如,我们在简书客户端上浏览推荐文章时,浏览到屏幕的末尾,此时又加载出了另一页的推荐文章,即实现了上拉 ...

  3. 微信小程序中使用ECharts 异步加载数据 实现图表

    <!--pages/bar/index.wxml--> <view class="container"> <ec-canvas id="my ...

  4. 【小程序开发】上拉加载更多demo

    wxml: <scroll-view class='swiper-scroll' scroll-y="{{true}}" bindscrolltolower="lo ...

  5. 微信小程序之下拉刷新,上拉更多列表实现

    代码地址如下:http://www.demodashi.com/demo/11110.html 一.准备工作 首先需要下载小程序开发工具 官方下载地址: https://mp.weixin.qq.co ...

  6. js防抖和节流优化浏览器滚动条滚动到最下面时加载更多数据

    防抖和节流,主要是用来防止过于平凡的执行某个操作,如浏览器窗口变化执行某个操作,监听某个input输入框keyup变化,瀑布流布局时Y轴滚动,图片加载. js函数的防抖 经过一段事件才执行某个操作,如 ...

  7. ASP.NET仿新浪微博下拉加载更多数据瀑布流效果

    闲来无事,琢磨着写点东西.貌似页面下拉加载数据,瀑布流的效果很火,各个网站都能见到各式各样的展示效果,原理大同小异.于是乎,决定自己写一写这个效果,希望能给比我还菜的菜鸟们一点参考价值. 在开始之前, ...

  8. 基于zepto的H5/移动端tab切换触摸拖动加载更多数据

    以前实现移动端的滑动加载更多实现的方法是当滚动条快到页面底部时就自动加载更多的数据,在这方面很多人都用的是"西门的后花园"写的一个叫dropload的插件,这个插件用起来也很好,很 ...

  9. vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件

    vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源 ...

随机推荐

  1. 在IDE中添加widfly依赖

    动机:在IDE中添加widfly依赖 原由:widfly实现了servlet接口,有我们对外交互时所需求的jar包 步骤: 第一步: 找到module依赖的地方 第二步:点击左侧的添加按钮,点击Lib ...

  2. Android 高德地图使用小记

    感谢大佬:https://www.cnblogs.com/devilmaycry812839668/p/8727569.html 高德地图 Android编程中 如何设置使 标记 marker 能够被 ...

  3. php7.3编译安装 支持微擎2.0

    再次整理   //一下配置在命令粘贴时注意句尾加 \ , 在 \ 后不能有空格,不然会自动执行,相当于回车./configure --prefix=/usr/local/php \ --with-co ...

  4. having筛选结果集

    题目要求:让你输出有两科及其以上挂科(60分及格)的学生的名单? name subject score 错误的做法: mysql> select name, count(scoure<60 ...

  5. 清理缓存的方法 #DF

    移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebImage. 但是,离线缓存会占用手机存储空间,所以缓存清理功能基本成为资讯.购物.阅读类 ...

  6. nvidia-smi

    内容转自:https://blog.csdn.net/handsome_bear/article/details/80903477 nvidia-smi 显示 说明 Fan 风扇转速(0%--100% ...

  7. 宝塔面板部署springboot项目并使用域名访问

    环境准备:服务器搭建宝塔linux面板项目: springboot项目项目打包方式jar包 环境: 一.服务器,一个域名,然后再服务器上(DNS服务)将域名解析好.把安全组设置好. 二.用宝塔快速搭建 ...

  8. 深度学习:多层感知机和异或问题(Pytorch实现)

    感知机模型 假设输入空间\(\mathcal{X}\subseteq \textbf{R}^n\),输出空间是\(\mathcal{Y}=\{-1,+1\}\).输入\(\textbf{x}\in \ ...

  9. 使用SetTrustedCredmanAccessPrivilege获取已保存的凭据

      windows系统中有一个名为SeTrustedCredmanAccessPrivilege的权限,使拥有该特权的进程可作为受信任的调用者访问凭据管理器.   凭据管理器可以从控制面板 -> ...

  10. leetcode算法1.两数之和

    哈喽!大家好,我是[学无止境小奇],一位热爱分享各种技术的博主! [学无止境小奇]的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过. [学无止 ...