rsnext/examples/progressive-render
Shu Uesugi 6804039e94 Make example READMEs more consistent (#10124)
* npx create → npm init

* Fix inconsistent instructions

* Update amp-first

* Update with-graphql-react

* with-firebase-cloud-messaging

* Update with-higher-order-component

* change create-next-app url

* Update create-next-app instruction

* Update instructions to use npm instead of npx

* Move "the idea behind the example" to top

* Rename

* Rename

* Update contributing.md with a README template
2020-01-16 23:23:56 +01:00
..
components [example] Progressive rendered application (#998) 2017-02-05 13:43:28 +01:00
pages Update progressive enhancement example (#9507) 2019-11-25 16:32:35 -05:00
package.json Update progressive enhancement example (#9507) 2019-11-25 16:32:35 -05:00
README.md Make example READMEs more consistent (#10124) 2020-01-16 23:23:56 +01:00

Example app implementing progressive server-side render

Sometimes you want to not server render some parts of your application.

For example:

  1. Third party components without server render capabilities
  2. Components that depend on window or other browser only APIs
  3. 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

Deploy your own

Deploy the example using ZEIT Now:

Deploy with ZEIT Now

How to use

Using create-next-app

Execute create-next-app with npm or Yarn to bootstrap the example:

npm init next-app --example progressive-render progressive-render-app
# or
yarn create next-app --example progressive-render progressive-render-app

Download manually

Download the example:

curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/progressive-render
cd progressive-render

Install it and run:

npm install
npm run dev
# or
yarn
yarn dev

Deploy it to the cloud with now (download):

now