rsnext/examples/with-context-api
Henrik Wenz aa406a1d62 Fix with-context-api example (#8559)
## Motivation

The code before this PR had serveral issues:

1. Context uses reference identity to determine when to re-render, there are some gotchas that could trigger unintentional renders in consumers when a provider’s parent re-renders.

https://reactjs.org/docs/context.html#caveats

2. `setState` should use the reducer pattern in this example to make sure clicks are not swallowed by react batch.
2019-08-29 12:09:22 -04:00
..
components Fix with-context-api example (#8559) 2019-08-29 12:09:22 -04:00
pages Deprecate Container usage (#8327) 2019-08-11 22:02:33 +02:00
package.json Update remaining examples to latest Next.js 2019-07-08 19:37:58 -04:00
README.md Fix sentence in with-context-api example (#7542) 2019-06-09 21:46:03 -07:00

Hello World example

How to use

Using create-next-app

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

npx create-next-app --example with-context-api with-context-api-app
# or
yarn create next-app --example with-context-api with-context-api-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-context-api
cd with-context-api

Install it and run:

npm install
npm run dev
# or
yarn
yarn dev

Deploy it to the cloud with now (download)

now

The idea behind the example*

This example shows how to use react context api in our app.

It provides an example of using pages/_app.js to include the context api provider and then shows how both the pages/index.js and pages/about.js can both share the same data using the context api consumer.

The pages/index.js shows how to, from the home page, increment and decrement the context data by 1 (a hard code value in the context provider itself).

The pages/about.js shows how to, from the about page, how to pass an increment value from the about page into the context provider itself.

*Based on WesBos example.