c486682b44
* Fix with-relay-modern example Starting with react-relay 1.5.0 the schema canno't be in the same dir as the src. This can be fixed by excluding the schema dir. Globs should also be inside quotation marks, to avoid non-deterministic behavior of different shells. * Add missing key on BlogPosts |
||
---|---|---|
.. | ||
components | ||
lib | ||
pages | ||
schema | ||
.babelrc | ||
.env | ||
.gitignore | ||
.graphqlconfig | ||
next.config.js | ||
package.json | ||
README.md |
Relay Modern 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-relay-modern with-relay-modern-app
# or
yarn create next-app --example with-relay-modern with-relay-modern-app
Download manually
Download the example or clone the repo:
curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/with-relay-modern
cd with-relay-modern
Install it:
npm install
# or
yarn
Download schema introspection data from configured Relay endpoint
npm run schema
# or
yarn schema
Run Relay ahead-of-time compilation (should be re-run after any edits to components that query data with Relay)
npm run relay
# or
yarn relay
Run the project
npm run dev
# or
yarn dev
Deploy it to the cloud with now (download):
now
The idea behind the example
Relay Modern is a new version of Relay designed from the ground up to be easier to use, more extensible and, most of all, able to improve performance on mobile devices. Relay Modern accomplishes this with static queries and ahead-of-time code generation.
In this simple example, we integrate Relay Modern seamlessly with Next by wrapping our pages inside a higher-order component (HOC). Using the HOC pattern we're able to pass down a query result data created by Relay into our React component hierarchy defined inside each page of our Next application. The HOC takes options
argument that allows to specify a query
that will be executed on the server when a page is being loaded.
This example relies on graph.cool for its GraphQL backend.