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. Windows 7 Ubuntu 修改系统启动加载项

    由于现在硬盘越来越大,越来越廉价.所以越来越多的很为了方便工作学习,在一台物理机上安装多个操作系统. 下面我们就来介绍安装多个操作系统后,每次开机后,到底默认引导哪个系统,由谁说的算? 由引导项说的算 ...

  2. TestNG--@Factory

    原文地址:http://blog.csdn.net/wanghantong TestNg的@Factory注解从字面意思上来讲就是采用工厂的方法来创建测试数据并配合完成测试 其主要应对的场景是:对于某 ...

  3. iOS应用跳转至app store 评分页

    小功能之去AppStore评分 #pragma mark - 去AppStore评分 -(void)goToAppStore { NSString *str = [NSString stringWit ...

  4. 栈(stack)、递归(八皇后问题)、排序算法分类,时间和空间复杂度简介

    一.栈的介绍: 1)栈的英文为(stack)2)栈是一个先入后出(FILO-First In Last Out)的有序列表.3)栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的 ...

  5. 适用于小白:VSCode搭建Vue项目,最详细的搭建步骤哦

    在vscode上搭建一个vue项目---初学总结. 1.假设Vscode.nodejs等已经安装好了. 2.全局安装vue-cli,vue-cli可以帮助我们快速构建Vue项目. 安装命令: npm ...

  6. 长安战疫Wp

    长安战疫wp misc 八卦迷宫 直接走迷宫 cazy{zhanchangyangchangzhanyanghechangshanshananzhanyiyizhanyianyichanganyang ...

  7. PHP面试常考内容之Memcache和Redis(1)

    你好,是我琉忆.继上周(2019.2-11至2-15)发布的"PHP面试常考内容之面向对象"专题后,发布的第二个专题,感谢你的阅读.本周(2019.2-18至2-22)的文章内容点 ...

  8. Solution -「ARC 101E」「AT 4352」Ribbons on Tree

    \(\mathcal{Description}\)   Link.   给定一棵 \(n\) 个点的树,其中 \(2|n\),你需要把这些点两两配对,并把每对点间的路径染色.求使得所有边被染色的方案数 ...

  9. 【流行前沿】联邦学习 Partial Model Averaging in Federated Learning: Performance Guarantees and Benefits

    Sunwoo Lee, , Anit Kumar Sahu, Chaoyang He, and Salman Avestimehr. "Partial Model Averaging in ...

  10. 详解Spring DI循环依赖实现机制

    一个对象引用另一个对象递归注入属性即可实现后续的实例化,同时如果两个或者两个以上的 Bean 互相持有对⽅,最终形成闭环即所谓的循环依赖怎么实现呢属性的互相注入呢? Spring bean生命周期具体 ...