[SEB FE 44] useEffect 적용

Heechang Jeong·2023년 4월 3일
0

CODE STATES

목록 보기
36/40
post-thumbnail

✍ 복습 자료

  • useEffect를 사용하는 이유?

    코드를 간단하게 줄여준다.
    렌더링 시 발생하는 side effect를 방지할 수 있다.

    • useEffect(() => {})
      화면이 렌더링 될 때마다 실행된다. => 이렇게 코드를 작성하는 경우는 거의 없다.

    • useEffect(() => {},[])
      렌더링 후 딱 한번만 실행

    • useEffect(() => {},[x])
      렌더링 후 한번 실행되고, x가 바뀔 때마다 실행


  • 로딩 화면 구현

  1. useState
    const [loading, setLoading] = useState(false);

  1. useEffect

    useEffect(async() => {
       setLoading(true); // 데이터를 받아오기 전에는 loading true
       setFlightList(await getFlight(condition));
       setLoading(false); // 데이터를 받아오고 나서 loading false
     }, [condition]);

  2. render

    // true : LoadingIndicator 컴포넌트를 보여주고 
    // false : FlightList 컴포넌트를 보여준다.
    {loading ? <LoadingIndicator /> : <FlightList list={flightList} />} 


Reference

0개의 댓글