이온 스켈레톤 로더
Facebook이나 Instagram에서 그들을 본 적이 있을 것입니다.
오늘 우리는 Ionic에서 이 멋진 스켈레톤 로더를 만드는 방법을 살펴보겠습니다.
우선, 얼마 전에 구축한 Ionic starter app을 사용하여 시작하겠습니다.
GitHub에서 스타터를 찾을 수 있습니다.
Ionic에 스켈레톤 로더 추가
이 예에서는 tab1 페이지에 스켈레톤 로더를 추가할 것입니다.
tab1.page.html
를 열고 다음을 추가합니다.<ion-list>
<ion-list-header>
<ion-skeleton-text animated style="width: 80px"></ion-skeleton-text>
</ion-list-header>
<ion-item>
<ion-thumbnail slot="start">
<ion-skeleton-text></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3>
<ion-skeleton-text animated style="width: 80%"></ion-skeleton-text>
</h3>
<p>
<ion-skeleton-text animated style="width: 60%"></ion-skeleton-text>
</p>
</ion-label>
</ion-item>
</ion-list>
이것은 우리의 데이터와 거의 같은 형식이 될 것이며 이 경우 헤더와 하나의 항목이 있는 전체 목록을 렌더링하는 것을 볼 수 있습니다.
필요한 경우 여러 항목을 만드는 것은 사용자에게 달려 있습니다.
또한 스켈레톤이 가까운 영역을 채울 것입니다. 부분 너비로 만들어 일부를 상쇄하는 것을 볼 수 있습니다.
애니메이션 속성도 함께 제공됩니다. 이것은 그들에게 놀라운 감동적인 측면을 줄 것입니다.
이제 실제 데이터가 로드되면 표시를 중지해야 합니다.
먼저
tab1.page.ts
파일로 이동하여 일부 지연된 데이터를 로드해 보겠습니다.data = [];
constructor() {
setTimeout(() => {
this.data.push({
thumbnail: "URL",
title: "Chris Bongers",
description: "Some cool description about this person",
});
}, 2000);
}
이렇게 하면 데이터 배열에 한 사람이 로드되지만 2000밀리초 지연됩니다.
이제 이 데이터를 반영하도록
html
파일을 수정할 수 있습니다.<ion-list *ngIf="data.length">
<ion-list-header> Famous people </ion-list-header>
<ion-item *ngFor="let item of data">
<ion-thumbnail slot="start">
<img [src]="item.thumbnail" />
</ion-thumbnail>
<ion-label>
<h3>{{item.title}}</h3>
<p>{{item.description}}</p>
</ion-label>
</ion-item>
</ion-list>
추가해야 할 마지막 요소는 스켈레톤 목록의
ngIf
입니다.<ion-list *ngIf="!data.length"></ion-list>
이렇게 하면 데이터가 로드될 때 스켈레톤이 표시되지 않습니다.
이제 다음과 같은 멋진 효과가 있어야 합니다.
다음GitHub repo에서 전체 데모 코드를 찾을 수 있습니다.
읽어주셔서 감사합니다. 연결합시다!
제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook에 연결하거나
Reference
이 문제에 관하여(이온 스켈레톤 로더), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dailydevtips1/ionic-skeleton-loader-24eo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)