aa406a1d62
## 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. |
||
---|---|---|
.. | ||
components | ||
pages | ||
package.json | ||
README.md |
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.