๐Ÿ“Œ useState

1
const [stateValue, stateUpdater] = useState(initState);

ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” API์ด๋‹ค.

  • stateUpdater๋Š” ๋ณดํ†ต setStateValue ์ด๋Ÿฐ์‹์œผ๋กœ set์„ ๋ถ™ํ˜€์„œ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿธ ์ง€์—ฐ๋œ ์ดˆ๊ธฐํ™”

initState๊ฐ’์€ ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์‹œ์—๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์œผ๋กœ, ์ดํ›„ ๋ Œ๋”๋ง ์‹œ์—๋Š” ๋ฌด์‹œ๋œ๋‹ค. ๋งŒ์•ฝ ์ดˆ๊นƒ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š”๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ง€์—ฐ๋œ ์ดˆ๊ธฐํ™” ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const [stateValue, stateUpdater] = useState(() => {
// ๊ณ„์‚ฐ์— ์ ์ง€ ์•Š์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋  ๊ฒฝ์šฐ
// ์•ฝ 790.62890625 ms
const initialState = fibonacci(39);

// ๊ณ„์‚ฐ ์ดํ›„: ์ง€์—ฐ๋œ ์ดˆ๊ธฐํ™”์˜ ์ฒ˜๋ฆฌ ๊ฐ’์„ ๋ฐ˜ํ™˜
return initialState;
});

// ๋˜๋Š” localStorage์—์„œ ๊ฐ’์„ ์ฝ์–ด์˜ค๋Š” ๊ฒฝ์šฐ
const [stateValue, setUpdater] = useState(() => {
const persnalization = localStorage.getItem("persnalization");
return JSON.parse(persnalization);
});

โ›ณ๏ธ ๊ฐ์ฒด ํƒ€์ž… ์ƒํƒœ ๊ด€๋ฆฌ

updateState ํ•จ์ˆ˜๋Š” setState ํ•จ์ˆ˜์ฒ˜๋Ÿผ ๊ฐ์ฒด ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ํ•ฉ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.

1
2
3
4
5
6
7
8
9
const [state, updateState] = useState({
key1: false,
key2: true,
});

updateState({
...state,
key2: true,
});
  • updateState ํ•จ์ˆ˜๋Š” ์ƒํƒœ ๋ณ‘ํ•ฉ์ด ์•„๋‹Œ ๋Œ€์ฒด๋ฅผ ํ•˜๋ฏ€๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด ๊ฐ’์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์œ„์™€ ๊ฐ™์ด ํ•ด์•ผํ•œ๋‹ค.