-
useState는 뭔가요?프론트엔드/React&JS 2022. 9. 9. 22:48
1. 간단한 소개
useState Hook을 사용하면 함수 구성 요소의 상태를 추적할 수 있다.
내가 주로 사용했을 때는 값을 변경시키고 그걸 반영해야할 때 자주 사용했다.
ex) 버튼을 누르면 true 혹은 false로 바뀌어야 할 때, 버튼을 누르면 1씩 증가
2. 사용법
우선 이 Hook을 사용하려면 import 해와야 한다.
import { useState } from 'react'; export default function App() { }
import 해왔다면
import { useState } from 'react'; export default function App() { const [count, setCount] = useState(0) }
const [변수명, count를 갱신할 수 있는 함수] = useState(초기값) 이렇게 작성해주면 사용할 준비가 끝난다.
보통 변수명, set변수명 명명해 사용한다.
초기값은 숫자, boolean, 객체, 배열 등 다양하게 설정할 수 있다.
import { useState } from 'react'; export default function App() { const [count, setCount] = useState(0); return ( <section> <h1>현재 카운트는 {count} 입니다.</h1> <button type="button" onClick={() => setCount(count + 1)}> 증가 </button> <button type="button" onClick={() => setCount(count - 1)}> 감소 </button> <button type="button" onClick={() => setCount(0)}> 초기화 </button> </section> ); }
count 값을 가져와 화면에 보이게 할 수도 있고 버튼을 눌렀을 때 증가, 감소, 초기화가 되게 할 수 있다.
3. 주의사항
useState는 비동기 Hook이다.
즉시 상태를 변경하지 않고 구성 요소가 다시 렌더링 될 때까지 기다려야 한다.
즉시 상태를 변경하지 않아 예상치 못한 동작을 할 수가 있으니 주의해서 사용해야 한다.
해당 문제를 useRef를 사용해 해결하는 경우를 봤는데, 아직까지는 문제가 된 적 없어서 문제가 된다면 포스팅 해야겠다.찾다보니까 useState를 useReducer로 리펙토링 하기도 하던데 이것도 나중에 리펙토링 하면서 정리해봐야겠다.참고
https://javascript.plainenglish.io/why-you-shouldnt-always-use-usestate-658994693018
'프론트엔드 > React&JS' 카테고리의 다른 글
URL.createObjectURL() 로 이미지 미리보기(프리뷰)를 만들어보자! (리액트에서 사용) (0) 2022.09.19 여러개의 input 상태 관리하기 (0) 2022.09.19 styled-component를 사용해보자. (0) 2022.09.10 이미지를 서버에 전송해보자. (feat. FormData, async/await) (0) 2022.09.02 React useParams에 대해 알아보자 (+ 현재 페이지 pathname 가져오기) (0) 2022.08.03