state๋ ๋ง ๊ทธ๋๋ก ์ํ๋ฅผ ๋งํ๋ ๋ฐ ํจ์ํ ์ปดํฌ๋ํธ์์ state์ ๊ฐ์ ๋ณ๊ฒฝํ ๋ Hook์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝํ๊ณค ํ๋ค.
state๊ฐ var, let๋ก ์ ์ธํ ๋ณ์๋ค๊ณผ ๋ค๋ฅธ ์ ์ด ๋ญ๊น?
๋ฆฌ์กํธ์์ state๋ฅผ ์ฐ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋
๋ฆฌ์กํธ๋ state๊ฐ ๋ณ๊ฒฝ๋ ๋ ๊ทธ state๊ฐ ํฌํจ๋ HTML์ ์๋์ผ๋ก ์ฌ๋ ๋๋ง ํ๊ธฐ ๋๋ฌธ์ด๋ค.
var, let๋ก ์ ์ธํ ๋ณ์๋ค๋ ๋ฉ์๋๋ฅผ ํตํด ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋๋ฐ ์ด๋ HTML์ ์๋ก๊ณ ์นจ ํด์ผ ๋ณ๊ฒฝ์ด ๋๋ค.
ํ์ง๋ง ์ด์ ๋ฌ๋ฆฌ state๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๊ฐ์์ DOM์ ์๋์ผ๋ก ์ฌ๋ ๋๋งํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ณ , ๋ถ๋๋ฝ๊ฒ ํ๋ฉด์ ํ์ด ๋๋ค.
useState๋ ์์ ์ค๋ช ํ state๋ฅผ state์ ์ํ ๋ณ๊ฒฝ ํจ์๋ฅผ ํตํด ์ํ๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ด๋ฅผ ํ๋ฉด์ ๋ฐ์ํด์ค๋ค.
useState๋ ๋ฆฌ์กํธ๊ฐ ์ ๊ณตํด์ฃผ๋ ์ผ์ข ์ ๋ด์ฅํจ์๋ก ์๋จ์ import๋ฅผ ํด์ค์ผ ํ๋ค.
import { useState } from 'react';
function App() {
const _count = useState(0); // 0์ผ๋ก ์ด๊ธฐํ
console.log(_count); // (2) [0, f]
const count = _count[0]; // ์ํ์ ๊ฐ
const setCount = _count[1]; // ์ํ์ ๊ฐ์ ๋ณ๊ฒฝํ ๋ ์ฐ๋ ํจ์ = ์ํ ๋ณ๊ฒฝ ํจ์
console.log(count); // 0
const [count, setCount] = useState(0); // ์์ ์ฝ๋ ์ธ ์ค ์ถ์ฝ
const onIncrease = () => { setCount(count + 1); };
const onDecrease = () => { setCount(count - 1); };
return (
<div>
<h1>{count}</h1>
<button onClick={onIncrease}> +1 </button>
<button onClick={onDecrease}> -1 </button>
</div>
);
}