1/14 - TIL

Beomยท2023๋…„ 1์›” 19์ผ
0

REACT

๋ชฉ๋ก ๋ณด๊ธฐ
14/16

๐Ÿ› ๊ธฐ์ดˆ๊ณต์‚ฌ ํ•ญ๋ชฉ

  1. ์ƒํƒœ ๊ด€๋ฆฌ ์„ธํŒ…ํ•˜๊ธฐ
    ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ผ๊ธฐ ๋ฐ์ดํ„ฐ state ๊ด€๋ฆฌ ๋กœ์ง ์ž‘์„ฑํ•˜๊ธฐ

  2. ํ”„๋กœ์ ํŠธ state context ์„ธํŒ…ํ•˜๊ธฐ
    ์ผ๊ธฐ ๋ฐ์ดํ„ฐ state๋ฅผ ๊ณต๊ธ‰ํ•  context๋ฅผ ์ƒ์„ฑํ•˜๊ณ  provider๋กœ ๊ณต๊ธ‰ํ•˜๊ธฐ

  3. ํ”„๋กœ์ ํŠธ dispatch context ์„ธํŒ…ํ•˜๊ธฐ
    ์ผ๊ธฐ ๋ฐ์ดํ„ฐ state์˜ dispatch ํ•จ์ˆ˜๋“ค์„ ๊ณต๊ธ‰ํ•  context๋ฅผ ์ƒ์„ฑํ•˜๊ณ  provider๋กœ ๊ณต๊ธ‰ํ•˜๊ธฐ


์ƒํƒœ ๊ด€๋ฆฌ ์„ธํŒ…ํ•˜๊ธฐ

[emotion.js]

์ผ๊ธฐ ๊ด€๋ฆฌ ์Šคํ…Œ์ดํŠธ๋ฅผ ์ž‘์„ฑํ•˜์ž

  1. useReducer ํ•จ์ˆ˜ ๋กœ์ง์„ ์ž‘์„ฑํ•˜๊ณ  reducer ํ•จ์ˆ˜์™€ ์ผ๋‹จ ๋นˆ ๋ฐฐ์—ด์„ ์ „๋‹ฌํ•ด์ฃผ์ž
const [data,dispatch] = useReducer(reducer,[])
  1. ๋‹ค์Œ์œผ๋กœ reducer ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž

  1. ๋ฆฌ๋“€์„œ์— ๋งž์ถฐ dispatch ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž

dataId ๋ฅผ useRef ๋กœ 0์„ ์ž…๋ ฅํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ ์•„์ด๋””๋กœ ์‚ฌ์šฉ

onCREATE ์ž‘์„ฑ์‹œ date ๊นŒ์ง€ ๋ฐ›๋Š” ์ด์œ ๋Š” ์–ธ์ œ ์ž‘์„ฑํ–ˆ๋Š”์ง€๊นŒ์ง€ ๋ฐ›์„๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ
onRemove ๋Š” targetId ๋ฅผ ๋ฐ›์•„์™€ ์–ด๋–ค ์•„์ด๋””์˜ ์ผ๊ธฐ๋ฅผ ์‚ญ์ œํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •
onEdit targetId, content, data, emotion ๋‹ค ๋ฐ›์•„์™€์•ผ ํ•œ๋‹ค -> ์ˆ˜์ •ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ


state Context ์„ธํŒ…ํ•˜๊ธฐ

๋งŒ๋“  data state ๋ฅผ ์ปดํฌ๋„ŒํŠธ ์ „์—ญ์— ๊ณต๊ธ‰ํ•ด๋ณด์ž

export const DiaryStateContext = React.createContext()

์ปดํฌ๋„ŒํŠธ ์ „์ฒด๋ฅผ provider ๋กœ ๊ฐ์‹ธ์ฃผ๊ณ  value ๋Š” data ๋ฅผ ์ œ๊ณต


dispatch Context ์„ธํŒ…ํ•˜๊ธฐ

๋งŒ๋“  ํ•จ์ˆ˜๋“ค์„ ๊ณต๊ธ‰ํ•ด์ฃผ์ž

export const DiaryDispatchContext = React.createContext()

Provider ๋กœ ๊ฐ์‹ธ์ฃผ๊ณ  value ๋Š” ๋งŒ๋“  ํ•จ์ˆ˜๋“ค์„ ์ œ๊ณต (onCreate, onEdit, onRemove);


์ถœ์ฒ˜
ํ•œ์ž…๋ฆฌ์•กํŠธ

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