Delay
이 컴포넌트는 두 가지 방식으로 사용할 수 있습니다.
- children에 delay를 적용하여 노출 시점을 지연시키거나,
- children이 render prop일 경우 delay된 시점에 플래그를 전달합니다.
props.ms
1. children이 노출되는 시점을 지연
이 컴포넌트는 children이 노출되는 시점을 ms만큼 지연시킵니다. 아래와 같은 코드에서는 200ms만큼 children 노출이 지연됩니다.
import { Delay } from '@suspensive/react'
 
export const Example = () => {
  return (
    <Delay ms={200}>
      <Delayed />
    </Delay>
  )
}2. children에 지연된 플래그를 전달하기
children이 render prop이라면 노출을 제어하지 않고 플래그를 전달합니다. 아래와 같은 코드에서는 200ms 뒤에 isDelayed가 true로 전달됩니다.
import { Delay } from '@suspensive/react'
 
export const Example = () => {
  return (
    <Delay ms={200}>
      {({ isDelayed }) => (
        <div
          style={{
            opacity: isDelayed ? 1 : 0,
            transition: 'opacity 1500ms',
          }}
        ></div>
      )}
    </Delay>
  )
}로딩 UI가 지연되어 노출되는 것이 때에 따라 더 좋은 사용성을 제공합니다.
import { Delay, Suspense } from '@suspensive/react'
 
const Example = () => (
  <Suspense
    fallback={
      <Delay ms={200}>
        <Skeleton />
      </Delay>
    }
  >
    ...
  </Suspense>
)Default ms
<Delay/>는 <DefaultPropsProvider/>와 함께 사용할 때 더욱 강력해집니다. <DefaultPropsProvider/>를 사용하여 여러 <Delay/> default ms를 제어합니다. 자세한 내용은 <DefaultPropsProvider/> 페이지에 소개되어 있습니다.
props.fallback
delay된 children 노출 전까지 보여줄 수 있는 fallback입니다.
import { Delay } from '@suspensive/react'
 
const Example = () => (
  <Delay ms={200} fallback={<>Fallback Text</>}>
    200ms delayed Text
  </Delay>
)Delay.with
Delay.with는 Delay를 사용하여 컴포넌트를 래핑하는 HOC입니다.
Delay.with를 사용하면 컴포넌트를 쉽게 래핑할 수 있습니다.
import { Delay } from '@suspensive/react'
 
const Example = Delay.with({ ms: 2000 }, () => {
  return <>...</>
})수정된 날짜: