[Angular]Spinner 로딩 화면 만들기
Spinner란
spinner란 로딩중 UI 화면을 라이브러리로 제공해주는 것을 말한다.
ngx-spinner 특징
- Angular 13 지원
- 커스텀 스피너 이미지 지원(gif),
img
태그 전달 가능 - 다중 스피너
- 서비스를 통해 구성 가능한 옵션
- 전체 화면 모드(활성화/비활성화)
show()/hide()
메서드 반환 약속- 동적
z-index
hide/show
회전 하는 동안 부드러운 애니메이션- 새롭게 업데이트된 데모 웹사이트
- 페이드 애니메이션 비활성화 옵션
- @Input() 변수를 사용하여 템플릿에서 스피너 표시/숨기기
- 더 작은 번들 크기
custom spinner
spinner 사용하는 방법
spinner 설치
npm 설치
$ npm install ngx-spinner –save
yarn 설치
$ yarn add ngx-spinner
angular-cli:
$ ng add ngx-spinner
spinner 사용하기
anguler.json 파일에 css 애니메이션 파일 추가
{ "styles" : [ "node_modules/ngx-spinner/animations/ball-scale-multiple.css" // ===> 애니메이션 이름을 기반으로 CSS 파일 추가(여기서는 "ball-scale-multiple") // 필요한 경우 여러 파일을 추가할 수 있습니다 . ] }
NgxSpinnerModule 모듈 가져오기
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from "@angular/core"; import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; // Import library module import { NgxSpinnerModule } from "ngx-spinner"; @NgModule({ imports: [ // ... BrowserAnimationsModule, NgxSpinnerModule, ], schemas: [CUSTOM_ELEMENTS_SCHEMA], }) export class AppModule {}
NgxSpinnerModule 모듈 사용하기
import { NgxSpinnerService } from "ngx-spinner"; class AppComponent implements OnInit { constructor(private spinner: NgxSpinnerService) {} ngOnInit() { /** spinner starts on init */ this.spinner.show(); setTimeout(() => { /** spinner ends after 5 seconds */ this.spinner.hide(); }, 5000); } }
템플릿에서 사용하기
<ngx-spinner type="ball-scale-multiple"></ngx-spinner>