hoilzz / customhookzz

๐ŸŽ…custom hook for myself ๐ŸŽ…

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

custom-hook-zz

์ž‘์—…ํ•˜๋ฉด์„œ ์‚ฌ์šฉํ•œ ์ปค์Šคํ…€ ํ›…

todo

  • ์Šคํ† ๋ฆฌ๋ถ์„ ํ†ตํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ
  • Lint (ES, TS)
    • ๊ตณ์ด react-app-config๋ฅผ ์ด์šฉํ•  ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ? ์–ด์ฐจํ”ผ hook๋งŒ ์ฒดํฌํ• ๊ฑด๋ฐ.. -> ๊ฑ eslint, ts recommend๋กœ ํ•จ
  • test ํ™˜๊ฒฝ ๊ตฌ์ถ•
  • ์Šคํ† ๋ฆฌ๋ถ ์ปดํŒŒ์ผ๋Ÿฌ ts-loader์ธ๋ฐ, ๊ฑ babel๋กœ ํ†ต์ผํ•˜์ž.
  • rollup์„ ํ†ตํ•œ ๋นŒ๋“œ

react-hooks-testing-library

renderHook

function renderHook(
  callback: function(props?: any): any,
  options?: RenderHookOptions
): RenderHookResult

์ œ๊ณต๋œ callback์„ every render๋งˆ๋‹ค ํ˜ธ์ถœํ•˜๋Š” ํ…Œ์ŠคํŠธ์šฉ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”ํ•œ๋‹ค. ์ฝœ๋ฐฑ์€ hook์„ ์ „๋‹ฌํ•ด๋„ ๋œ๋‹ค.

callback

  • ๋งŒ์•ฝ new props์ด rerender call์—์„œ ์ œ๊ณต๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ฝœ๋ฐฑ์— ์ „๋‹ฌ๋œ props๋Š” options์˜ initialProps์ด๋‹ค.

rederHook Result ๊ฐ์ฒด

renderHook์˜ ๋ฐ˜ํ™˜๊ฐ’ ์ธํ„ฐํŽ˜์ด์Šค

export interface HookResult<R> {
  readonly current: R;
  readonly error: Error;
}

export interface RenderHookResult<P, R> {
  readonly result: HookResult<R>;
  readonly waitForNextUpdate: () => Promise<void>;
  readonly unmount: () => boolean;
  readonly rerender: (newProps?: P) => void;
}
{
  current: any,
  error: Error
}

current ๊ฐ’ or result๋Š” renderHook์— ์ „๋‹ฌ๋œ ์ฝœ๋ฐฑ์—์„œ ๋ฐ˜ํ™˜ ๋œ ๋ชจ๋“  ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•œ๋‹ค. thrown value๋Š” error ๊ฐ’์— ๋ฐ˜์˜๋œ๋‹ค.

rerender

function rerender(newProps? : any): void

hook์„ ์žฌ์—ฐ์‚ฐ ์‹œํ‚ค๊ณ , ํ…Œ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฆฌ๋ Œ๋”ํ•œ๋‹ค. ๋งŒ์•ฝ newProps๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค๋ฉด, callback์— ์ „๋‹ฌ๋œ initialProps์„ ๋Œ€์ฒดํ•  ๊ฒƒ์ด๋‹ค.

Docs

DocsPage๋Š” ์ปดํฌ๋„ŒํŠธ ์Šคํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ œ๋กœ ์ปจํ”ผ๊ทธ, docgen comments, props table์„ ๊น”๋”ํ•˜๊ฒŒ ๋ณด์—ฌ์คŒ

MDX. ๊ธด ํ˜•์‹์˜ ๋งˆํฌ๋‹ค์šด ๋ฌธ์„œ ์Šคํ† ๋ฆฌ๋ฅผ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ์ž‘์„ฑ๊ฐ€๋Šฅ.

About

๐ŸŽ…custom hook for myself ๐ŸŽ…


Languages

Language:TypeScript 58.2%Language:JavaScript 41.8%