[DEV] 기록

React 비동기 통신 중 로딩 스피너 띄우기

꾸준함. 2020. 5. 17. 17:01

React axios를 활용하여 api를 호출하면 자바스크립트의 ajax처럼 서버와 비동기 통신을 하는데,

딜레이 시간 동안 로딩 화면 혹은 로딩 모달을 띄우는 방법에 대해 소개드리겠습니다.

 

저는 비동기 통신 딜레이 시간 동안 스피너를 띄우기 위해 react-loading 라이브러리를 사용했습니다.

yarn 혹은 npm 을 통해 다운 받아주시면 됩니다.

yarn add react-loading

메시지와 함께 스피너를 화면 중앙에 띄워주기 위해 저는 아래와 같이 코드를 작성했습니다.

<ReactLoading> 태그에 주목해주세요.

Loader.js

* 저 같은 경우에는 별도 페이지를 만들었지만 html과 css를 다룰줄 아시는 분들은 Spinner 모달을 만들고 loading state가 true일 때 해당 모달을 띄우는 방법을 사용하셔도 됩니다! 

 

이제 비동기 처리 함수인 axios 함수를 호출하는 자바스크립트 파일의 뼈대입니다.

해당 파일을 참고하여 적절하게 활용해주시면 됩니다!

 

axios에 대한 보다 자세한 설명은 아래 링크를 참고해주세요.

https://jaimemin.tistory.com/1407

 

React axios 사용 예시

React에서 Rest Api를 쉽게 호출하기 위해 axios 라이브러리를 사용하게 되었습니다. 화면을 Component 단위로 나누었고 Api를 호출할 때마다 header에 인증 권한인 Authorization을 함께 넣어줘야 했는데 예시

jaimemin.tistory.com

Main.js

[react 버전] 16.13.1

[react-loading 버전] 2.0.3

[개발환경] VsCode, Windows

반응형