📜  ionic 无限滚动

📅  最后修改于: 2021-01-03 04:47:19             🧑  作者: Mango

离子无限滚动

无限滚动组件用于调用用户从页面顶部底部滚动指定距离时要执行的操作。当我们必须一次显示大量数据时,这非常有用。

每个移动应用程序都需要一种方法来以较少的点击次数显示大量数据。在这种情况下,无限滚动对其起着至关重要的作用。无限滚动组件的工作方式类似于在页面上加载十个项目。现在,当用户滚动这些项目并到达底部附近时,它将发出一个新的数据请求。该请求获取将添加到现有项目的下一组记录项目。重复此过程,直到随着用户滚动而在块中找不到新数据为止。

当滚动Facebook,Instagram或Twitter新闻提要区域时,您可以更清楚地了解它。该页面始终加载新帖子,并且您将在屏幕底部看到加载微调框。

您可以使用标准的组件访问无限滚动。当用户接近定义的距离时,将调用在中分配的表达式(ionInfinite)=“ loadData($ event)”。完成所有任务后,它将在无限滚动实例上调用complete()方法。阈值属性指示到内容底部的距离,以便在滚动时调用无限的输出内容。

无限滚动内容

它是组件,用于显示内容。它还改变了滚动的外观,这取决于无限滚动的状态。它包含用于滚动的选项,例如loadingSpinnerloadingText等。

注意:组件在ReactJS中不支持。

以下示例说明了Ionic Scroll组件在应用程序中的工作方式。

Home.page.html

该HTML页面调用该事件以显示无限滚动内容。在此,使用表达式[disabled] =“ numTimesLeft <= 0”停止滚动。我们还自定义了加载微调器和加载消息的类型,它们在调用该方法以及正在进行数据加载时显示。


  
    Ionic Infinite Scroll
  



  
     {{item}} 
  
  
    
    
  

主页

在此文件中,我们将使用for循环方法在页面加载时添加虚拟数据。当在页面底部到达列表时,将调用loadData()方法。最后,调用complete()方法将停止加载程序。

import { Component} from '@angular/core';

@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage {
  items = [];
  numTimesLeft = 5;
  constructor() {
    this.addMoreItems();
  }
  loadData(event) {
    setTimeout(() => {
      console.log('Done');
      this.addMoreItems();
      this.numTimesLeft -= 1;
      event.target.complete();
    }, 500);
  }
  addMoreItems() {
    for (let i = 0; i < 10; i++) {
      this.items.push(i);
    }
  }
}

输出量

当您运行该应用程序时,它将给出以下输出。

现在,当列表到达页面底部时,页面将重复,直到随着用户滚动而在块中找不到新数据为止。