kyuuuun 2023. 4. 13. 17:32
728x90

react.js 에서 state의 사용법을 간략히 정리하는 글이다.

react.js 에서 state는 컴포넌트가 동적으로 가질 수 있는 상태를 말한다.

react 엘리먼트를 반환하는 함수형 컴포넌트에서 특정 상태 값을 실시간으로 변경하기 위해 useState 라는 React Hook을 사용할 수 있다.  

import React, {useState} from 'react';

const Counter = () => {
    
    console.log("counter 호출"); // count의 상태(값)이 바뀔때마다 console에서 호출되는것을 확인할 수 있다. 
    const [count, setCount] = useState(0);
    const onIncrease= () => {
        setCount(count + 1);
    }
    
    const onDecrease= () => {
        setCount(count - 1);
    }

    return (
        <div>
            <h2>{count}</h2>
            <button onClick={onIncrease}>+</button>
            <button onClick={onDecrease}>-</button>
        </div>
    )
} 
export default Counter;

위 예시는 + 버튼과 -버튼을 클릭하여 현재 표출되는 있는 값을 동적으로 1씩 증가하거나 감소시키는 counter 예제이다.

 

1. import useState 

import React, {useState} from 'react'; //react Hooks useState import

우선 상태를 관리하기 위해 react 에서 useState를 import 한다. 

 

2. state 변수선언

const [count, setCount] = useState(0);

state 사용하기 위해 위와 같이 변수선언을 한다. setCount에 상태값을 전달하면 count에서 실제로 전달받은 값으로 상태가 변경되는 원리이이다. useState 에 0을 넣어주었는데 여기서 0은 count의 초기값을 의미한다.

 

3. 상태변경

const onIncrease= () => {
    setCount(count + 1);
}
    
const onDecrease= () => {
    setCount(count - 1);
}

return (
    <div>
        <h2>{count}</h2>
        <button onClick={onIncrease}>+</button>
        <button onClick={onDecrease}>-</button>
    </div>
)

위 코드에서 onIncrease 와 onDecrease 함수를 클릭했을때의 이벤트로 전달하여 + 버튼을 클릭하였을때는 현재 count 값에 1을 더한 상태값을, - 버튼을 클릭하였을때는 현재 count 값에 1을 감소한 상태값을 setCount를 사용하여 변경한다. 컴포넌트의 상태가 바뀌게되면 해당 컴포넌트를 다시 호출하여 렌더링을 하게 되는데 이것을 리렌더링(re-rendering)이라고 한다.