Ionic -- Refresher & InfiniteScroll 下拉刷新与滚动懒加载

下拉刷新和滚动加载在移动端是很常见的需求,Ionic 为我们提供了开箱即用的组件。在这里我结合自己做的小demo简单介绍下。

Template

在模板中需要将 ion-refresher 组件放置在 ion-content 内部的首位,将 ion-infinite-scroll 置于尾部。

<ion-refresher (ionRefresh)="doRefresh($event)">
    <ion-refresher-content
        pullingIcon="arrow-dropdown"
        pullingText="下拉刷新"
        refreshingSpinner="circles"
        refreshingText="刷新中...">
    ></ion-refresher-content>
</ion-refresher>

<!-- 这里放置需要显示的数据 -->

<ion-infinite-scroll (ionInfinite)="doInfinite($event)">
    <ion-infinite-scroll-content
        loadingSpinner="bubbles"
        loadingText="加载更多...">
    </ion-infinite-scroll-content>
</ion-infinite-scroll>

Refresher 下拉刷新

下拉刷新事件在用户下拉一定程度时被触发,进而启动刷新过程。一旦异步操作完成并且刷新结束,需要调用complete()。

doRefresh(refresher){
    setTimeout(() => {
        this.getData() //获取数据
        refresher.complete()
    }, 1000)
}

InfiniteScroll 滚动懒加载

无限滚动事件是当用户向上滚动页面时执行的操作,当用户滚动到指定的距离触发事件。异步操作完成需要调用complete()。
虽然名字叫无限滚动,但在实际需求中我们经常用它来完成数据的懒加载功能。

doInfinite(infiniteScroll){
    setTimeout(() => {
        this.getData()
        infiniteScroll.complete()
    }, 1000)
}

示例

1. 效果展示

基于一个简单的增删改查小 demo 效果如图。

1136673-20180411094755329-1647654718.png1136673-20180411094814089-1712979421.png

2. Template

1136673-20180411094713769-1834584403.png

3. Model

在PC端一般将数据分页处理以达到提升性能的目的,而移动端的操作特性不允许使用分页组件(既丑又不方便 : )
但它们原理是相同的,因此不必改变接口相关方法只改变前端实现即可。当前的 PageInfo 是需要展示数据类的分页包装类。

1136673-20180411095109031-980190042.png

4. Service

调用接口方法注册为服务,使用时依赖注入即可。

1136673-20180411095002783-40040777.png

5. Typescript

调用分页接口服务传参获取数据,每加载一次就将部分数据 push 到结果集中,view 随之更新。

1136673-20180411095023875-1745655828.png

由于使用场景较多,这里也可以将 doRefresh()/doInfinite() 注册为服务。

1136673-20180411095032802-92106804.png


若有错误或表达不准确处欢迎指正。

转载于:https://www.cnblogs.com/qimeng/p/8793643.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值