[TIL] 내일배움캠프 React 과정 2024.05.20

김형빈·2024년 5월 20일
0

내일배움캠프

목록 보기
23/81

오늘의 한 일

오늘의 배운점

useState의 특징: State Batch Update

  • state batch update란?

    • 리액트의 이벤트 핸들러를 사용하여 여러 번의 setState를 호출할 떄 이를 하나의 업데이트로 일괄 처리하여 리렌더링이 한 번만 발생하도록 하는 것이다.
    • state 값의 업데이트는 16ms 단위로 이루어진다.
  • 예시

    import { useState, useEffect } from "react";
    
     export default function App() {
     	const [num, setNum] = useState(0);
    
    	const handlePlus = () => {
       		setNum(num + 1);
       		setNum(num + 1);
       		setNum(num + 1);
     	};
    	return (
       	<div>
         	<p>{num}</p>
        	<button onClick={handlePlus}>plus</button>
      	 </div>
     	);
    }
  • num + 1이 3번 반복되므로 3이 증가할 것 같지만 1이 증가한다.

    import { useState, useEffect } from "react";
    
     export default function App() {
     	const [num, setNum] = useState(0);
    
    	const handlePlus = () => {
       		setCount((prev) => prev + 1);
    		setCount((prev) => prev + 1);
    		setCount((prev) => prev + 1);
     	};
     	return (
       	<div>
         	<p>{num}</p>
         	<button onClick={handlePlus}>plus</button>
       	</div>
     	);
    }
    • 위 처럼 함수형 업데이트 방식을 사용하여 문제를 해결할 수 있다.

컴포넌트 분리의 이유

  • 재사용성
    • 컴포넌트가 반복되면 분리한다.
  • 응집성
    • 코드 내용이 길어지면 분리한다.
  • 불필요한 리렌더링 방지
    • state가 꼭 필요한 곳에 있도록 분리한다.

Layout을 사용하는 이유

  • 공통된 UI
  • 공통된 비즈니스 로직
    • ex.로그인 했는지 제일 처음 확인하는 작업

Layout의 불필요한 mount, unmount를 없애자!

  • 2024.05.21에 복습하면서 적어보자!

오늘의 회고

다시 시작된 알고리즘 강의와 React 숙련 주차 발제, 챌린지반 수업까지 라이브 수업만으로도 바쁘게 흘러갔던 하루였다. 게다가 다시 또 기침이 시작되면서 병원까지 갔다오는 바람에 더욱 더 하루가 빠르게 흘러가버렸다. 강의 내용도 이제 점점 심화 과정을 다루는 만큼 전처럼 여유롭게 듣기 힘들어졌다. 그래도 그만큼 새로운 내용을 공부할 수 있기에 이런 방법이 있었구나 하고 흥미롭게(?) 수업에 임하고 있다. '과거에 이런 걸 배워두고 프로젝트에 임했다면 더 좋은 결과물을 만들 수 있지 않았을까?'라는 아쉬움이 문득문득 들지만 과거는 과거니까 앞으로 이런 일이 발생하지 않도록 최선을 다하자
profile
The secret of getting ahead is getting started.

0개의 댓글