๐ŸŽ‰ Suspensive v2๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ๋”๋ณด๊ธฐ โ†’
๋ฌธ์„œ๋ณด๊ธฐ
@suspensive/react
<Delay/>

Delay

props.ms

์ด ์ปดํฌ๋„ŒํŠธ๋Š” children์ด ๋…ธ์ถœ๋˜๋Š” ์‹œ์ ์„ ms๋งŒํผ ์ง€์—ฐ์‹œํ‚ต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ์—์„œ๋Š” 200ms๋งŒํผ children ๋…ธ์ถœ์ด ์ง€์—ฐ๋ฉ๋‹ˆ๋‹ค.

import { Delay } from '@suspensive/react'
 
const Example = () => (
  <Delay ms={200}>
    <Delayed />
  </Delay>
)

๋กœ๋”ฉ UI๊ฐ€ ์ง€์—ฐ๋˜์–ด ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์ด ๋•Œ์— ๋”ฐ๋ผ ๋” ์ข‹์€ ์‚ฌ์šฉ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

import { Delay, Suspense } from '@suspensive/react'
 
const Example = () => (
  <Suspense
    fallback={
      <Delay ms={200}>
        <Skeleton />
      </Delay>
    }
  >
    ...
  </Suspense>
)
๐Ÿ’ก

Default ms

<Delay/>๋Š” <SuspensiveProvider/>์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ ๋”์šฑ ๊ฐ•๋ ฅํ•ด์ง‘๋‹ˆ๋‹ค. <SuspensiveProvider/>๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ <Delay/> default ms๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ <SuspensiveProvider/> ํŽ˜์ด์ง€์— ์†Œ๊ฐœ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

props.fallback

โš ๏ธ

<Delay/>์˜ fallback๋Š” ์‹คํ—˜ ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

delay๋œ children ๋…ธ์ถœ ์ „๊นŒ์ง€ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” fallback์ž…๋‹ˆ๋‹ค

import { Delay } from '@suspensive/react'
 
const Example = () => (
  <Delay ms={200} fallback={<>Fallback Text</>}>
    200ms delayed Text
  </Delay>
)

withDelay

๐Ÿšซ

deprecated: ๋Œ€์‹  wrap.Delay().on์„ ์‚ฌ์šฉํ•˜์„ธ์š”

withDelay๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ๋ฅผ <Delay/>๋กœ ์‰ฝ๊ฒŒ ๋ž˜ํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด withDelay๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฅผ ๊ฐ์‹ธ๊ธฐ ์œ„ํ•ด ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. withDelay์˜ ๋‘ ๋ฒˆ์งธ ์ธ์ž๋Š” children์ด ์—†๋Š” <Delay/>์˜ props์ž…๋‹ˆ๋‹ค.

import { withDelay } from '@suspensive/react'
 
const Example = withDelay(
  function Component() {
    return <>...</>
  },
  { ms: 200 }
)