React Recoil

๊ณต์‹๋ฌธ์„œ

๊ฐœ์š”

  • Atom์— value๋ฅผ ๋„ฃ๊ณ  ํ•„์š”ํ•œ component๊ฐ€ ์ ‘๊ทผํ•ด์„œ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•จ

  • Traveling Prop์„ ํ•ด๊ฒฐํ•จ

RecoilRoot

  • recoil ์ƒํƒœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋Š” ๋ถ€๋ชจ ํŠธ๋ฆฌ์— RecoilRoot๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ๋ฃจํŠธ ์ปดํฌ๋„ŒํŠธ์— RecoilRoot๋ฅผ ๋„ฃ์–ด์คŒ

Atom

  • Atom์€ **์ƒํƒœ(State)**์˜ ์ผ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ„

  • Atoms๋Š” ์–ด๋А ์ปดํฌ๋„ŒํŠธ์—์„œ๋‚˜ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Œ

  • Atom์— ์–ด๋–ค ๋ณ€ํ™”๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ Atom์„ ๊ตฌ๋…ํ•˜๋Š” ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๋“ค์ด ์žฌ ๋žœ๋”๋ง ๋จ

// atoms.ts

export const textstate = atom({
  key: "textState",
  // unique ID (with respect to other atoms/selectors)
  default: "",
  // default value (aka initial value)
})
  • ์ปดํฌ๋„ŒํŠธ์—์„œ atom์„ ์ฝ๊ณ  ์“ฐ๊ธฐ ์œ„ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ Hook์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

Hooks

  • useRecoilValue(Atom) : Atom์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜

  • useSetRecoilState(Atom) : Modifier๋ฅผ ๋ฐ˜ํ™˜

  • useRecoilState(Atom) : ๊ฐ’๊ณผ Modifier๋ฅผ ๋ฐ˜ํ™˜(setState์™€ ๊ฐ™์Œ)

Selector

  • Selector๋Š” ํŒŒ์ƒ๋œ ์ƒํƒœ(derived state)์˜ ์ผ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ„

  • ํŒŒ์ƒ๋œ ์ƒํƒœ === ์ƒํƒœ์˜ ๋ณ€ํ™”

  • useRecoilValue(selector) hook์„ ์‚ฌ์šฉํ•ด์„œ ๊ฐ’์„ ์ฝ์„ ์ˆ˜ ์žˆ์Œ

Last updated