Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- css필수 속성
- Do it
- do it! html+css+자바스크립트 웹 표준의 정석
- 코딩자율학습
- 자바스크립트
- Git
- html 필수태그
- propschildren
- html 실무
- do it! 한권으로 끝내는 웹 기본 교과서 html+css+자바스크립트 웹 표준의 정석
- react
- CSS
- 코딩 자율학습
- cpu 성능 향상 기법
- 코딩 자율학습 html + css + 자바스크립트]
- html 기본문서
- CPU
- JavaScript
- https://api.jquery.com/
- 혼자 공부하는 컴퓨터구조+운영체제
- css배경
- html 문서작성
- TS
- 이벤트
- 코딩
- HTML
- 메모리와 캐시 메모리
- JS
- css박스 모델
- 코딩 자율학습 html + css + 자바스크립트
Archives
- Today
- Total
게으른 나에게
[MUI] 로딩 기능 추가 본문
로딩(Loading)시 나오는 스피너(Spinner)
- 화면에 불러오면 바로 불러지지 않고 일정 시간을 두고 메인화면에 렌더링
- 공백 기간 동안 로딩 컴포넌트 보여주는 식
- 로딩도 하나의 상태(로딩이 되었다, 안 되었다) -> Boolean 형태
- 상태로 관리
- 요청을 시작했을 때 로딩상태 true -> <Loading /> 컴포넌트
- 데이터 패치가 완료되었을 때 로딩상태 false -> <불러올 내용 /> 컴포넌트
import { CircularProgress} from "@mui/material";
const [isLoading, setIsLoading] = useState(false);
useEffect(() => {
setIsLoading(true);
fetch("/product")
.then((response) => response.json())
.then((data) => setProducts(data.products))
.finally(() => setIsLoading(false))
}, []);
if (isLoading) return <CircularProgress />;
- setIsLoading(ture) 호출, 로딩 상태 true
- fetch("/product") 백엔드 API 서버에 데이터 요청, 비동기적으로 실행, 엔드포인트에서 응답 반환할 때 까지 기다림, (Promise)반환
- 응답이 완료 되었을 경우 핸들링
- .then((response) => response.json()) 서버 응답을 JSON으로 변환
.then((data) => setProducts(data.products)) data 객체의 products 값을 컴포넌트 상태로 설정 - 서버에서 서받은 제품 데이터를 컴포넌트의 상태로 저장
.finally(() => setIsLoading(false)) 비동기 작업이 완료되면 setIsLoading 호출해서 로딩상태 false
'My Study > MUI' 카테고리의 다른 글
[MUI] TextField (0) | 2024.10.20 |
---|---|
[MUI] 레이아웃 구현 (0) | 2024.10.19 |
[MUI] 그리드 (0) | 2024.10.19 |
[MUI] 시작하기 (1) | 2024.10.19 |