微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析

前端之家收集整理的这篇文章主要介绍了微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了@R_404_189@列表渲染功能之列表下拉刷新及上拉加载的实现方法分享给大家供大家参考,具体如下:

@R_404_189@为2017年1月9日打下了一个特殊的标签,迅速刷爆了网络和朋友圈,最近我也写了一个demo程序体验一把。@R_404_189@和vuejs有些像,都是数据驱动视图&单向数据绑定,而其体验要比H5页面好很多,这得益于微信环境的支持以及首次运行时同时加载所有页面的处理。本文将分享@R_404_189@列表的下拉刷新和上划加载的实践。

效果

首先来看看程序效果图,以下四张图从左至右依次是:下来刷新动画、下拉刷新结果、上划加载动画以及上划加载结果,程序中的数据均为模拟数据,不包含网络请求,所以可以直接运行。

方法一:用scroll-view组件实现

由于最后没有选择这种实现方法(下拉刷新有bug),因此只做简单介绍,当然如果没有下拉刷新的需求,scroll-view组件实现列表的渲染很方便,从官方文档可以看到,scroll-view组件集成了以下方法为编程提供很大便捷。

底部/右边,会触发 event.detail = {scrollLeft,scrollTop,scrollHeight,scrollWidth,deltaX,deltaY}

方法二:用page页面自带功能

Page() 函数用来注册一个页面。接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。

1、在app.json页设置窗口前景色为dark & 允许下拉

2、在list.json页设置允许下拉

3、利用onPullDownRefresh监听用户下拉动作

注:在滚动 scroll-view 时会阻止页面回弹,所以在 scroll-view 中滚动无法触发onPullDownRefresh,因此在使用 scroll-view 组件时无法利用page的该特性。

{ this.setData({ words: newwords }) wx.hideNavigationBarLoading() //完成停止加载 wx.stopPullDownRefresh() //停止下拉刷新 },2000) }

4、利用onReachBottom页面上拉触底事件

注:,首次进入页面,如果页面不满一屏时会触发 onReachBottom ,应为只有用户主动上拉才触发;手指上拉,会触发多次 onReachBottom,应为一次上拉,只触发一次;所以在编程时需要将这两点考虑在内。

{ this.setData({ loading: false,words: words }) },2000) } })

5、上划加载图标动画

{ if (!this.data.loading) clearInterval(timer); animation.rotateZ(deg).step();//在Z轴旋转一个deg角度 deg += 360; this.setData({ refreshAnimation: animation.export() }) },2000); }

最后附上布局代码

希望本文所述对大家@R_404_189@设计有所帮助。

原文链接:https://www.f2er.com/weapp/35029.html

猜你在找的微信小程序相关文章