[React] React Suspense이란?

2022. 12. 2. 17:54·🍞 FrontEnd/React

React.Suspense란?

Suspense는 아직 렌더링이 준비되지 않은 컴포넌트가 있을때 로딩 화면을 보여주고 로딩이 완료되면 해당 컴포넌트를 보여주는 React에 내장되어 있는 기능이다.

 

기본적으로 리액트는 JSX 코드 안에 들어있는 모든 컴포넌트를 즉시 호출하여 바로 랜더링을 진행한다.
예를 들어, 리액트는 다음과 같이 <Event /> 컴포넌트가 포함된 JSX 코드를 렌더링할 때, Event 함수를 바로 호출한다.

<Event />

그러나 아래처럼 Suspense로 감싸주면 컴포넌트의 랜더링을 특정 작업 이후로 미루고, 그 작업이 끝날 때 까지는 fallback 속성으로 넘긴 컴포넌트를 대신 보여줄 수 있다.

<Suspense fallback={<Skeleton />}>
  <Event />
</Suspense>

 

✅ useState를 통한 Loading

이전까지는 늘 이렇게 비동기 작업을 수행하기 이전에 loading이라는 상태값을 변경하여 UI를 띄워왔었다.

const fetchData = useCallback(async () => {
  try {
    setLoading(true)
    const data = await callback()
    setState(data)
  } catch (error) {
    throw new Error(err)
    setLoading(false)
  }
}, [setLoading, callback, setState])

 

✅ Suspense를 통한 Loading

비동기로 작업되는 컴포넌트를 Suspense로 감싸고, 로딩 때 보여줄 화면을 fallback 속성으로 전달한다.
로딩화면을 생성하기 위한 useState와 같은 hook들이 생성될 필요가 없어졌다.

<Suspense fallback={<Skeleton />}>
  <Event />
</Suspense>

 

저작자표시 (새창열림)

'🍞 FrontEnd > React' 카테고리의 다른 글

[React/Node.js] 프론트 서버와 백 서버 한 번에 키기  (0) 2022.12.19
[React/Node.js] CORS 이슈, Proxy 설정  (0) 2022.12.19
[React/TS] 스켈레톤 코드 (Skeleton)  (2) 2022.12.02
[React] Swiper 적용하기 버전 8.0.0  (0) 2022.11.29
[React] JWT를 이용한 로그인 흐름  (0) 2022.11.26
'🍞 FrontEnd/React' 카테고리의 다른 글
  • [React/Node.js] 프론트 서버와 백 서버 한 번에 키기
  • [React/Node.js] CORS 이슈, Proxy 설정
  • [React/TS] 스켈레톤 코드 (Skeleton)
  • [React] Swiper 적용하기 버전 8.0.0
박빵이
박빵이
2025년에도 갓생살기
  • 박빵이
    기억보다 기록
    박빵이
  • 전체
    오늘
    어제
    • 분류 전체보기 (337)
      • 🍞 FrontEnd (97)
        • HTML+CSS (4)
        • JavaScript (17)
        • TypeScript (4)
        • React (52)
        • Next.js (2)
        • Android (15)
      • 🍞 BackEnd (24)
        • Java (15)
        • Node.js (6)
        • Spring (1)
      • 🍞 Cloud & Infra (0)
        • AWS SAA (0)
        • Microsoft Azure (0)
      • 🍞 Algorithm (147)
        • C++ (4)
        • Baekjoon (41)
        • Programmers (97)
      • 🍞 Computer Science (18)
        • 운영체제 (1)
        • 데이터 통신 (6)
        • 네트워크 (6)
        • 데이터베이스 (1)
      • 🍞 대외활동 & 부트캠프 (42)
        • 삼성 청년 SW 아카데미 (1)
        • LG유플러스 유레카 (0)
        • 한국대학생IT경영학회 (1)
        • IT연합동아리 UMC (17)
        • 길벗 블로깅 멘토 (18)
        • IT연합동아리 피로그래밍 (3)
        • 개발 컨퍼런스 (2)
  • 블로그 메뉴

    • Admin
  • 링크

    • GitHub
  • 인기 글

  • 태그

    길벗 블로깅 멘토링
    Java
    유니온파인드
    level1
    위상정렬
    react
    코딩자율학습
    Android
    길벗 블로깅 멘토
    JavaScript
    umc
    알고리즘
    코틀린
    백준
    안드로이드
    C++
    Front
    map
    level2
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
박빵이
[React] React Suspense이란?
상단으로

티스토리툴바