draftMode
API Reference for the draftMode function.
draftMode
is an async function allows you to enable and disable Draft Mode, as well as check if Draft Mode is enabled in a Server Component.
Reference
The following methods and properties are available:
Method | Description |
---|---|
isEnabled | A boolean value that indicates if Draft Mode is enabled. |
enable() | Enables Draft Mode in a Route Handler by setting a cookie (__prerender_bypass ). |
disable() | Disables Draft Mode in a Route Handler by deleting a cookie. |
Good to know
draftMode
is an asynchronous function that returns a promise. You must useasync/await
or React'suse
function.- In version 14 and earlier,
draftMode
was a synchronous function. To help with backwards compatibility, you can still access it synchronously in Next.js 15, but this behavior will be deprecated in the future.
- In version 14 and earlier,
- A new bypass cookie value will be generated each time you run
next build
. This ensures that the bypass cookie can’t be guessed. - To test Draft Mode locally over HTTP, your browser will need to allow third-party cookies and local storage access.
Examples
Enabling Draft Mode
To enable Draft Mode, create a new Route Handler and call the enable()
method:
Disabling Draft Mode
By default, the Draft Mode session ends when the browser is closed.
To disable Draft Mode manually, call the disable()
method in your Route Handler:
Then, send a request to invoke the Route Handler. If calling the route using the <Link>
component, you must pass prefetch={false}
to prevent accidentally deleting the cookie on prefetch.
Checking if Draft Mode is enabled
You can check if Draft Mode is enabled in a Server Component with the isEnabled
property:
Version History
Version | Changes |
---|---|
v15.0.0-RC | draftMode is now an async function. A codemod is available. |
v13.4.0 | draftMode introduced. |