HTML, DOM, Node.js

Hooks - React

파란배개 2021. 1. 7. 11:19

useState는 state를 설정한다.

-useState의 사용법

//다른 훅도 마찬가지지만 useState도 사용시 리엑트에서 임포트해야 한다
Import React, {useState, useEffect} from ‘react’;

function Example() {
  const [count, setCount] = useState(0);
//첫 번째 인자인 count는 state가 되고, 
//두 번째 인자인 setCount는 count를 업데이트하는 setState의 역할을 한다
//useState()에 들어간 0은 state의 일부인 count의 초기값이 된다.

//이후 렌더하는 부분에서 
  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        count
      </button>
    </div>
  );
//useState의 두 번째 인자인 setCount를 이런 식으로 사용해 state를 업데이트한다
}

 

useEffect는 사이드이펙트(혹은 이펙트)를 제어한다.

라이프사이클의 대체제

-useEffect의 사용법

import React, {useState, useEffect} from 'react';

function Example() {
  const [count, setCount] = useState(0);
  
  useEffect(() => {
    document.title = `You clicked ${count} times`;
//윗 부분은 컴포넌트가 마운트 될 때(useEffect의 두 번째 인자가 없을 때), 
//업데이트 될 때 작동한다(state가 useEffect의 두 번째 인자로 있을 때 그 인자가 업데이트 될 경우)
//(클래스 컴포넌트의 componentDidMount + componentDidUpdate와 비슷하다)
    return function cleanup() {
//useEffect의 return 부분은 컴포넌트가 언마운트 될 때 작동한다
//(클래스 컴포넌트의 componentWillUnmount)
    }
  });

  return (
    <div>
    <p>You clicked {count} times</p>
    <button onClick={() => setCount(count + 1)}>
    Click
    </div>
  );  
}

더 공부할 것

useState

useEffect

useContext

useRef

useMemo and useCallback

useReducer