반응형
useState
useState는 React의 내장 hook 함수 중 하나로, 함수형 컴포넌트에서 상태를 관리하기 위해 사용됩니다. useState는 배열을 반환하며 첫 번째 요소는 현재 상태값을, 두 번째 요소는 상태를 갱신하는 함수를 포함합니다. 보통 리액트에서 상태관리라고 하면 제일 먼저 떠오르는게 useState 를 이용한 기본적인 상태관리 방식이라고 볼 수 있습니다.
예를 들어, 간단한 숫자를 더하는 컴포넌트를 만들어보겠습니다. 이 컴포넌트에서는 useState를 사용하여 현재 상태값을 저장하고, 버튼을 클릭할 때마다 상태값을 갱신하고 화면에 출력합니다.
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
// 현재상태 ㄴ현재상태 변경 함수
function handleClick() {
setCount(count + 1);
}
return (
<div>
<p>You clicked {count} times</p>
<button onClick={handleClick}>Click me</button>
</div>
);
}
(참고) 리액트에서 useState의 변수와 함수를 보면 const [변수, set변수] 인 것을 볼 수 있습니다. 관례상 state에 해당하는 변수명, 해당 변수를 업데이트하는 함수는 set변수명 형태로 작성합니다. |
이 코드에서 useState의 첫 번째 인자로 초기값 0을 전달했습니다. count 변수는 현재 상태값을 저장하며, setCount 함수를 사용하여 상태를 갱신합니다. handleClick 함수에서는 setCount를 호출하여 count 값을 1씩 증가시키고, 버튼 클릭 시 handleClick 함수가 호출됩니다.
위 코드를 실행하면, 버튼을 클릭할 때마다 "You clicked [count] times" 메시지가 갱신되며, count 값이 증가합니다. 이와 같이 useState를 사용하면 함수형 컴포넌트에서도 상태값을 간편하게 관리할 수 있습니다.
잠깐 더 살펴보기 |
useState 은 리액트 내에서 지역적으로 실행됩니다. 다시 말해, state 를 선언하는 컴포넌트 외에서는 완전히 비공개 되어 있기에, 외부 컴포넌트에서는 state 를 수정할 수 없습니다. 이는 반대로 자신이 선언된 컴포넌트를 제외하고는 외부에 어떠한 영향도 미치지 않으므로 다른 컴포넌트에 영향을 주지 않은 상태에서 state를 추가하거나 제거할 수 있습니다. 만약에 지역적으로 선언된 state 를 다른 컴포넌트와 공유하고자 한다면, 해당 state 변수를 자식 컴포넌트의 props 로 전달해주면 됩니다. 그럼 자식 컴포넌트는 props 속성에 접근하여 상위 컴포넌트로 부터 전달받는 state 를 사용할 수 있게 됩니다. |
반응형
'리액트' 카테고리의 다른 글
[react] 단순 자동 슬라이드 코드 정리 (0) | 2023.03.28 |
---|---|
[react] onLoad(), 이미지가 서버로 부터 받아와 졌는지 확인 후 분기 처리 (0) | 2023.03.21 |
[리액트] 리액트에서 DOM에 대한 직접 접근을 권장하지 않는 이유와 Ref 훅을 통한 DOM 접근 (0) | 2023.03.09 |
[ReactJS] React.lazy() API ; 필요한 컴포넌트만 동적 로드하는 API (0) | 2023.03.07 |
[react type] React.FC (0) | 2023.03.07 |