rsnext/examples/with-data-prefetch
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 Improve linting rules to catch more errors (#9374) 2019-11-10 19:24:53 -08:00
pages Improve linting rules to catch more errors (#9374) 2019-11-10 19:24:53 -08:00
package.json Test updater script on examples folder (#5993) 2019-01-05 12:19:27 +01:00
README.md Make example READMEs more consistent (#10124) 2020-01-16 23:23:56 +01:00

Example app with prefetching data

Next.js lets you prefetch the JS code of another page just adding the prefetch prop to next/link. This can help you avoid the download time a new page you know beforehand the user is most probably going to visit.

In the example we'll extend the Link component to also run the getInitialProps (if it's defined) of the new page and save the resulting props on cache. When the user visits the page it will load the props from cache and avoid any request.

It uses sessionStorage as cache but it could be replaced with any other more specialized system. Like IndexedDB or just an in-memory API with a better cache strategy to prune old cache and force new fetching.

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 with-data-prefetch with-data-prefetch-app
# or
yarn create next-app --example with-data-prefetch with-data-prefetch-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/with-data-prefetch
cd with-data-prefetch

Install it and run:

npm install
npm run dev
# or
yarn
yarn dev

Deploy it to the cloud with now (download):

now

Note

This example is based on the ScaleAPI article explaining this same technique.

Note: it only works in production environment. In development Next.js just avoid doing the prefetch.