Sometimes you want to not server render some parts of your application.
For example:
- Third party components without server render capabilities
- Components that depend on
window
or other browser only APIs - Content isn't important enough for the user (eg. below the fold content)
To handle these cases, you can conditionally render your component using the useEffect
hook.
This example features:
- A custom hook called
useMounted
, implementing this behavior - An app with a component that must only be rendered in the client
- A loading component that will be displayed before rendering the client-only component
Preview the example live on StackBlitz:
Deploy the example using Vercel:
Execute create-next-app
with npm or Yarn to bootstrap the example:
npx create-next-app --example progressive-render progressive-render-app
# or
yarn create next-app --example progressive-render progressive-render-app
Deploy it to the cloud with Vercel (Documentation).