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. 细说string和stringbuffer

    ========================================================================================= 在我看来,学习jav ...

  2. 「NOI十联测」深邃

    「NOI十联测」深邃 要使得最大的连通块最小,显然先二分答案. 先固定1结点为根. 对于一个果实,显然是先处理子树中未分配的点,再向外延伸. 每个结点记录一个\(si[]\),表示子树中未分配的点数, ...

  3. Spring学习六:自定义Event事件

    Spring 中的自定义事件 编写和发布自己的自定义事件有许多步骤.按照在这一章给出的说明来编写,发布和处理自定义 Spring 事件. 步骤 描述 1 创建一个名称为 SpringExample 的 ...

  4. bom案例5-简单动画

      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q ...

  5. SpringAOP/切面编程示例

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11833954.html Spring AOP/切面编程实例和一些注意事项, 主要是利用注解来实 ...

  6. Shell条件练习题

    Shell条件练习题 目录 Shell条件练习题 1.检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限 2.提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的 ...

  7. 一文详解Kafka API

    摘要:Kafka的API有Producer API,Consumer API还有自定义Interceptor (自定义拦截器),以及处理的流使用的Streams API和构建连接器的Kafka Con ...

  8. shell——mkfifo管道

    转自:http://blog.sina.com.cn/s/blog_605f5b4f0101azuc.html 创建命名管道的方法为:mkfifo pipe_name. 这样就能创建一个命名的管道pi ...

  9. apt安装zabbix

    下面介绍基于ubuntu18.04,使用apt在ubuntu安装zabbix 4.0.x版本.规划在10.0.0.101主机安装zabbix server,在10.0.0.104安装提供msyql服务 ...

  10. Java == 和 equals 的区别(面试描述)

    == == 是一个比较运算符 既可以判断基本类型,又可以判断引用类型 如果判断基本数据类型,判断的是值是否相等 如果判断的是引用类型,判断的是地址是否相等,判断是不是同一个对象 equals equa ...