[basic] react hooks

Yeongsan Son·2021년 4월 13일
0

Why was hooks made?

  • 클래스 컴포넌트에서 가능한 컴포넌트 상태 관리를 함수형 컴포넌트에서도 가능하도록 구현
  • 함수형 컴포넌트에서 생명주기 기능읕 연동

📌 State Hook

import React from 'react';

const Counter = () => {
  const [count, setCount] = React.useState(0);
  
  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        Click Me!
      </button>
    </div>
  );
}
  • useState 함수를 사용하여 상태 관리를 할 대상을 초기화 => 일반적으로 일반 변수는 함수가 끝나면 사라지지만, state 변수는 React에 의해 사라지지 않음.
  • event가 발생할 때(상태의 변화), useState 함수의 기능을 전달(?) 받은 setCount 함수를 실행
  • 하나의 함수형 컴포넌트 안에서 여러 개의 state hook을 사용 가능
  • useState 함수의 장점: this로 골머리를 앓을 필요가 없다.

⚡️ Effect Hook

import React from 'react';

const Counter = () => {
  const [count, setCount] = React.useState(0);
  
  // componentDidMount, componentDidUpdate와 유사
  useEffect(() => {
    // 브라우저 API를 이용해 문서의 타이틀을 업데이트합니다.
    document.title = `You clicked ${count} times.`;
  });
  
  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        Click Me!
      </button>
    </div>
  );
}
  • 리액트에게 컴포넌트가 렌덩링된 이후에 어떤 일을 수행해야하는지 방향성을 제시
  • DOM 업데이트 -> effect 함수 실행

Hook Rule

  • 최상위에서만 Hook을 호출해야함 => 반복문, 조건문 혹은 중첩된 함수 내에서 Hook 호출 금지 => 반복문 조건문을 Hook 내에서 사용
  • React 함수 내에서 Hook을 호출 => Hook을 일반 js 함수에서 호출하지 말아야
profile
매몰되지 않는 개발자가 되자

0개의 댓글

관련 채용 정보