5. Reference APIs

atomFamily(options)

: atom 을 λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

Atom Family λŠ” atom 의 λͺ¨μŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€.

const elementPositionStateFamily = atomFamily({
  key: 'ElementPosition',
  default: [0, 0],
});

function ElementListItem({elementID}) {
  const position = useRecoilValue(elementPositionStateFamily(elementID));
  return (
    <div>
      Element: {elementID}
      Position: {position}
    </div>
  );
}

μœ„μ²˜λŸΌ atomFamilyλŠ” atomκ³Ό 거의 λ™μΌν•˜μ§€λ§Œ μ „λ‹¬ν•œ λ§€κ°œλ³€μˆ˜μ— 따라 RecoilStateλ₯Ό μ œκ³΅ν•˜λŠ” ν•¨μˆ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

selectorFamily(options)

: selector ν•¨μˆ˜λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

atomFamily 와 λΉ„μŠ·ν•˜κ²Œ selectorFamily λŠ” selector 의 λͺ¨μŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€.

selector 와 μœ μ‚¬ν•˜μ§€λ§Œ get, set, selector의 μ½œλ°±μ„ λ§€κ°œλ³€μˆ˜λ‘œ 전달할 수 μžˆλ‹€λŠ” 점이 λ‹€λ¦…λ‹ˆλ‹€.

selectorFamily μœ ν‹Έλ¦¬ν‹°λŠ” λ§€κ°œλ³€μˆ˜λ‘œ 호좜 ν•  수 μžˆλŠ” ν•¨μˆ˜λ₯Ό λ°˜ν™˜ν•˜κ³  selector λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

useRecoilCallback(callback, deps)

: useCallback κ³Ό λΉ„μŠ·ν•˜μ§€λ§Œ Recoil μƒνƒœμ—μ„œ callback이 λ™μž‘ν•˜λ„λ‘ APIλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

이 hook 은 λΉ„λ™κΈ°λ‘œ ν˜„μž¬μ˜ Recoil μƒνƒœλ₯Ό μ—…λ°μ΄νŠΈν•˜κ±°λ‚˜ 읽기 μ „μš© Snapshotarrow-up-right 에 μ ‘κ·Όν•  수 μžˆλŠ” callback 을 κ΅¬μΆ•ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš©ν•˜λŠ” 경우

  • λ¦¬μ•‘νŠΈ μ»΄ν¬λ„ŒνŠΈμ—μ„œ ν•΄λ‹Ή μƒνƒœλ₯Ό κ΅¬λ…ν•˜μ§€ μ•Šκ³  싢을 λ•Œ

  • λ Œλ”λ§ 이전에 데이터λ₯Ό 미리 κ°€μ Έμ˜€κ³  싢을 λ•Œ (Pre-fetchingarrow-up-right)

Last updated