Suspense

DOC: https://ja.react.dev/reference/react/Suspense

https://zenn.dev/uhyo/books/react-concurrent-handson/viewer/what-is-suspense

Suspenseを用いると...

import { VFC } from "react";

const sleep = (ms: number) => {
  return new Promise((resolve) => setTimeout(resolve, ms));
};

/**
 * 必ずsuspendするコンポーネント
 */
export const AlwaysSuspend: VFC = () => {
  // console.log("AlwaysSuspend is rendered");
  throw sleep(1000); // **Promiseをthrow**
};
import { Suspense } from "react";

<Suspense fallback={<div>サスペンドしたらこれが表示される</div>}>
  {/* ↓サスペンドしなかったらこれが表示される */}
  <MyComponent />
</Suspense>