draftMode
draftMode
は 非同期 関数で、Draft Mode の有効化・無効化や、サーバーコンポーネント で Draft Mode が有効かどうかを確認できます。
リファレンス
以下のメソッドとプロパティが利用可能です:
メソッド | 説明 |
---|---|
isEnabled | Draft Mode が有効かどうかを示すブール値。 |
enable() | ルートハンドラーでクッキー (__prerender_bypass ) を設定して Draft Mode を有効化。 |
disable() | ルートハンドラーでクッキーを削除して Draft Mode を無効化。 |
知っておくと便利
draftMode
は Promise を返す 非同期 関数です。async/await
または React のuse
関数を使用する必要があります。- バージョン 14 以前では、
draftMode
は同期関数でした。後方互換性のために Next.js 15 でも同期アクセス可能ですが、この動作は将来非推奨になります。
- バージョン 14 以前では、
next build
を実行するたびに新しいバイパスクッキー値が生成されます。これにより、バイパスクッキーが推測されるのを防ぎます。- HTTP 経由でローカルで Draft Mode をテストする場合、ブラウザでサードパーティークッキーとローカルストレージへのアクセスを許可する必要があります。
使用例
Draft Mode の有効化
Draft Mode を有効化するには、新しい ルートハンドラー を作成し、enable()
メソッドを呼び出します:
Draft Mode の無効化
デフォルトでは、Draft Mode セッションはブラウザを閉じると終了します。
手動で Draft Mode を無効化するには、ルートハンドラー で disable()
メソッドを呼び出します:
その後、ルートハンドラーを呼び出すリクエストを送信します。<Link>
コンポーネント を使用してルートを呼び出す場合、プリフェッチ時に誤ってクッキーを削除しないように prefetch={false}
を渡す必要があります。
Draft Mode の有効状態を確認
サーバーコンポーネントで isEnabled
プロパティを使用して Draft Mode が有効かどうかを確認できます:
バージョン履歴
バージョン | 変更内容 |
---|---|
v15.0.0-RC | draftMode が非同期関数に変更。コードモッド が利用可能。 |
v13.4.0 | draftMode が導入。 |