๐Ÿ“Œ ๊ณต์‹๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด, useState์˜ ๋Œ€์ฒด ํ•จ์ˆ˜๋ผ๊ณ  ๋‚˜์™€์žˆ๋‹ค.

์ฆ‰, state(์ƒํƒœ)๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋Š” Hook์ด๋‹ค.

โœจ๊ทธ๋ ‡๋‹ค๋ฉด, useState์™€์˜ ๋‹ค๋ฅธ์ ์€?

ํ•œ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ state๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๋กœ์ง ๋ถ€๋ถ„์„ ๊ทธ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌ์‹œํ‚ค๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

โœ ๊ธฐ๋ณธ ์ฝ”๋“œ ๊ตฌ์กฐ

const [state, dispatch] = useReducer(reducer, initialArg, init(option));

dispatch({type:__ });

const reducer = (state, action) => {
	switch(action.type){
		case __:
			return __;
		case __:
			return __;
		default:
			return __;
	}
};

๐Ÿ“Œreducer

๊ฐ์ฒด๋ฅผ ์ƒˆ๋กญ๊ฒŒ ๋งŒ๋“ค์–ด ๋‚˜๊ฐˆ ๋กœ์ง์„ ์ž‘์„ฑํ•œ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์ค€๋‹ค.

๐Ÿ“Œdispatch

reducer๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

useState์—์„œ์˜ set์ฒ˜๋Ÿผ dispatch๋ฅผ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” action์„ ๋ช…๋ นํ•  ์ˆ˜ ์žˆ๋‹ค.