본문 바로가기
안녕하세요 :) FE 개발자 윤지홍입니다.
저는 리액트를 주로 사용해요.
UX/UI디자인에도 관심이 있어요.
Javascript React NextJs NodeJs Flutter HTML CSS PHP
👋
useState 사용법
jiiii-hong | React | 2022년 08월 13일

useState 사용법

useState 사용법

jiiii-hong React 2022년 08월 13일

사용법

기본적으로 아래와 같이 사용하면되고 사용 시엔 불변성을 꼭 지켜줘야한다.

const [state, setState] = useState({
  title: '호롤롤로롤',
  content: '공백',
});

 

상태 값 변경은 setState를 사용하면 된다.

setState({
  ...state,
  content: 'ㅋㅋㅋㅋㅋㅋㅋ',
});

setState를 사용하지 않고 직접 값을 변경하게 되면 리액트가 render 함수를 호출하지 않아 상태가 변경되어도 렌더링 되지 않는다. 또한 리액트는 setState를 실행했을때 이전 값과 비교 후 리렌더링 여부를 판단하기 때문에 직접적으로 값을 변경해선 안된다.

참고

setState는 비동기적으로 동작한다.

const [counter, setCounter] = useState(0);

setCounter(counter + 1);
console.log(counter); // result: 0

useEffect(() => {
  console.log(counter); // result: 1
}, [counter]);

 

또한 같은 키를 가진 작업이 있을경우 하나로 합쳐서 마지막에 있는 내용만 처리한다.

setCounter(counter + 1);
setCounter(counter + 1);
setCounter(counter + 5);
// result: 5

 

updater에 인자값은 항상 최신 값으로 유지되기 때문에 최신 값이 필요하거나 순차 실행이 필요할 땐 setState에 updater함수를 전달해서 사용한다.

setCounter(prevCounter => prevCounter + 1);
setCounter(prevCounter => prevCounter + 1);
setCounter(prevCounter => prevCounter + 5);
// result: 7

updater 사용 시 리액트는 해당 작업들을 하나로 합치는게 아닌 큐에 각각 하나씩 넣고 처리한다.

'React' 카테고리의 다른 글

React 메모이제이션 사용하기  (0) 2022.08.16
useEffect 사용법  (0) 2022.08.16
React에서 불변성을 지켜야하는 이유  (0) 2022.08.15
HOOK 이란?  (0) 2022.08.10
React 시작하기  (2) 2022.08.03