React の組み込み API
createContextを利用すると、子コンポーネントに対してコンテクストを定義および提供できます。useContextと一緒に使用されます。lazyを利用すると、コンポーネントのコードの読み込みを初回レンダーまで遅延することができます。memoを利用すると、同じ props を持つコンポーネントの再レンダーをスキップできます。useMemoやuseCallbackと一緒に使用されます。startTransitionを使うと、state の更新を低緊急度 (non-urgent) としてマークできます。useTransitionに似ています。actを使うと、テスト環境でレンダーやユーザ操作をラップして、アサーションを行う前に更新が確実に処理されるようにします。cacheを使うと、データフェッチや計算の結果をキャッシュできます。cacheSignalを使うと、cache()の生存期間が終了したことを知ることができます。captureOwnerStackは、開発環境で現在の Owner Stack を読み取り、利用可能な場合は文字列として返します。
リソース API
リソース (resource) とは、state として保持しなくともコンポーネントからアクセスできる情報のことです。例えばコンポーネントはプロミス (Promise) からメッセージを読み取ったりコンテクストからスタイル情報を読み取ったりできます。
以下の種類のリソースを use に渡すことができます。
- Promise を渡した場合:その Promise の解決された値を読み取ることができます。
- コンテクストを渡した場合:そのコンテクストの値を読み取ることができます。
- Canary only
browserの返り値を渡した場合:サーバレンダリング中に、このコンポーネントをブラウザ専用としてマークすることができます。
function MessageComponent({ messagePromise }) {
const message = use(messagePromise);
const theme = use(ThemeContext);
use(browser());
// ...
}