1 분 소요

미션1 LMS 강의 자료2

⛓ Controlled & Uncontrolled Components

1. Controlled Component (제어 컴포넌트)

설명

  • React에 값이 완전히 제어되는 Input Element
  • State를 값으로 넘기고 그 State을 다룰 수 있는 핸들러를 콜백으로 넘긴다.
  • 값을 ___ 으로 받는다


2. Uncontrolled Component (비제어 컴포넌트)

설명

  • 전통적인 HTML처럼 DOM에 제어되는 Input Element
  • 오직 사용자만 값과 상호작용
  • 값을 ___ 로 사용한다.



⚓️ Hooks API

React 과거의 문제

  • 재사용성에 대한 문제: class 기반에서는 로직을 재사용하는 방법이 복잡하게 느껴졌다.
  • 중복과 관심사 분리에 대한 문제: 라이프사이클 메서드에 다양한 관심사의 로직이 조각조각 흩어지는 일이 자주 발생했다.
  • 개념 자체로 인한 문제: this 바인딩을 이해하기 어렵다.


React팀의 Solution, Hooks API

Hook이란?

  • Funtion Component에서도 React가 제공하는 모든 기능들을 가져다(hook into) 쓸 수 있게 해주는 React가 제공해주는 함수

1. useState - 상태

// useState hook 만들기
const [state, setState] = useState(initialState);

// 사용하기
setState(newState);

2. useEffect - 라이프사이클

useEffect(() => {
  // render 이후 업데이트

  return () => {
    // cleanup - unmount
  };
}, [dependencies]);
  • 매 render가 끝난 이후 첫 번째 인자로 주어진 함수 호출
  • unmount 될 때 뭔가 처리해주어야 한다면 함수를 리턴
  • 특정 값이 업데이트 될 때만 호출하길 원한다면 두 번째 인자로 해당값 배열로 지정

💡 Effect를 쓰지 않고 해결할 수 있다.

  • useEffect는 컴포넌트를 ‘외부 시스템과 동기화’하기 위한 훅
  • 이는 외부 시스템과 동기화하는 작업이 아니라면 useEffect 훅을 쓰지 않아도 된다는 말

댓글남기기