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

<DevMode/>

โš ๏ธ

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

<DevMode/>๋Š” ์˜ค์ง <Suspense/>, <ErrorBoundary/> ๊ฐ๊ฐ์˜ fallback์„ ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ์ปจํŠธ๋กคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜ค์ง development ๋ชจ๋“œ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. production ๋ชจ๋“œ์—์„œ๋Š”(์•ฑ build์‹œ์—), ์ด api๋“ค์€ ์ž˜ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

Setup

<DevMode/>๋ฅผ ์„ค์ •ํ•˜๊ณ , ๊ฐ ์ปดํฌ๋„ŒํŠธ์˜ devMode prop์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

import { Suspensive, SuspensiveProvider, DevMode } from '@suspensive/react'
 
const App = () => {
  const [suspensive] = useState(() => new Suspensive())
 
  return (
    <SuspensiveProvider value={suspensive}>
      {/** in children, we can use devMode now */}
      <DevMode />
    </SuspensiveProvider>
  )
}

<Suspense/> devMode prop

import { Suspense } from '@suspensive/react'
 
const Example = () => (
  <Suspense
    fallback={<>loading...</>}
    devMode={{
      // use devMode prop, and click `<DevMode/>` in display
      showFallback: true,
    }}
  >
    children
  </Suspense>
)

<ErrorBoundary/> devMode prop

import { ErrorBoundary } from '@suspensive/react'
 
const Example = () => (
  <ErrorBoundary
    fallback={({ error }) => <>{error.message}</>}
    devMode={{
      // use devMode prop, and click `<DevMode/>` in display
      showFallback: true,
    }}
  >
    children
  </ErrorBoundary>
)
import { ErrorBoundary } from '@suspensive/react'
 
const Example = () => (
  <ErrorBoundary
    fallback={({ error }) => <>{error.message}</>}
    devMode={{
      // use devMode prop, and click `<DevMode/>` in display
      showFallback: { after: 2000 },
    }}
  >
    children
  </ErrorBoundary>
)