๐Ÿ“– TIL - React Reducer์™€ ๋ถˆ๋ณ€์„ฑ: Todo ์•ฑ์—์„œ ๋ฐฐ์šด ์ž‘์€ ๊ตํ›ˆ์˜ ๋ณต์Šต

์Š˜ยท2025๋…„ 2์›” 11์ผ

๐Ÿ“– TIL

๋ชฉ๋ก ๋ณด๊ธฐ
53/90

โœจ ๋ฌธ์ œ ์ƒํ™ฉ

Todo ์•ฑ์—์„œ ์•„์ดํ…œ ์ˆ˜์ • ์‹œ reducer๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•œ ์˜๋ฌธ:

// โŒ ์ฒ˜์Œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ
case "setModifyItem": 
  return (state.todoItem = action.todoItem);

"๋‹จ์ˆœํžˆ ๊ฐ’๋งŒ ์ „๋‹ฌํ•˜๋Š”๋ฐ ์™œ ๊ธฐ์กด ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•˜์ง€?" ๋ผ๋Š” ์˜๋ฌธ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ๊นจ๋‹ฌ์€ ์ 

1. ๋ฆฌ๋“€์„œ์™€ ๋ถˆ๋ณ€์„ฑ

// โœ… ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹
case "setModifyItem":
  return {
    ...state,          // ๊ธฐ์กด ์ƒํƒœ ๋ณต์‚ฌ
    todoItem: action.todoItem  // ์ƒˆ๋กœ์šด ๊ฐ’ ์„ค์ •
  };
  • ๋ฆฌ๋“€์„œ๋Š” ํ•ญ์ƒ ์ƒˆ๋กœ์šด ์ƒํƒœ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•จ
  • ์ง์ ‘์ ์ธ ์ƒํƒœ ์ˆ˜์ •์€ ํ”ผํ•ด์•ผ ํ•จ
  • ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋กœ ๊ธฐ์กด ์ƒํƒœ๋ฅผ ๋ณต์‚ฌ ํ›„ ์ˆ˜์ •

2. ๋‹จ์ˆœ ๊ฐ’ ๋ฐ˜ํ™˜์˜ ๋ฌธ์ œ์ 

// โŒ ์ž˜๋ชป๋œ ๋ฐฉ์‹
case "setModifyItem":
  return action.todoItem; // ๊ธฐ์กด ์ƒํƒœ ์†์‹ค
  • ๊ธฐ์กด ์ƒํƒœ์˜ ๋‹ค๋ฅธ ์†์„ฑ๋“ค์ด ์‚ฌ๋ผ์ง
  • React์˜ ์ƒํƒœ ๊ด€๋ฆฌ ๊ทœ์น™์— ์œ„๋ฐฐ

3. Context์—์„œ ์ƒํƒœ ์‚ฌ์šฉ

const { state } = useContext(TodoContext);
  • useContext๋ฅผ ํ†ตํ•ด ํ•„์š”ํ•œ ์ƒํƒœ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ
  • ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์œผ๋กœ ๊น”๋”ํ•œ ์ฝ”๋“œ ์ž‘์„ฑ

โญ๏ธ ํ•ต์‹ฌ ํฌ์ธํŠธ

  1. ๋ฆฌ๋“€์„œ๋Š” ํ•ญ์ƒ ์ƒˆ๋กœ์šด ๊ฐ์ฒด ๋ฐ˜ํ™˜
  2. ๊ธฐ์กด ์ƒํƒœ ๋ณด์กด์˜ ์ค‘์š”์„ฑ
  3. ๋ถˆ๋ณ€์„ฑ ์œ ์ง€๋ฅผ ํ†ตํ•œ ์•ˆ์ •์ ์ธ ์ƒํƒœ ๊ด€๋ฆฌ

๐ŸŽฏ ๋ฐฐ์šด ์ 

๋ถˆ๋ณ€์„ฑ ์œ ์ง€๋ฅผ ํ•ด์•ผ๋œ๋‹ค๋Š”๊ฑธ ์ตํžˆ ์•Œ๋ฉด์„œ๋„ ์ž์ฃผ ์‹ค์ˆ˜ํ•˜์—ฌ ๋‹ค์‹œ๊ธˆ ๋ฆฌ๋งˆ์ธ๋“œ ์‹œํ‚จ๋‹ค..
๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ๋•Œ๋Š” ๊ผญ ๊ธฐ์กด ์ƒํƒœ๋ฅผ ๋ณด์กด ํ›„ ๋‹ค๋ฃจ์–ด์•ผ ํ•œ๋‹ค.

profile
์ฃผ๋‹ˆ์–ด ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ์žฅ๊ธฐ ๊ธฐ๋ก๊ธฐ๋ก

0๊ฐœ์˜ ๋Œ“๊ธ€