-
Notifications
You must be signed in to change notification settings - Fork 27.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add apollo state func #18436
add apollo state func #18436
Conversation
Stats from current PRDefault Server Mode (Decrease detected ✓)General
Page Load Tests Overall decrease
|
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.261 | 2.383 | |
/ avg req/sec | 1105.49 | 1048.93 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.196 | 1.247 | |
/error-in-render avg req/sec | 2090.21 | 2004.47 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
677f882d2ed8..3aa9.js gzip | 11.3 kB | 11.3 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-fc2ed98..cd2b.js gzip | 7.33 kB | 7.33 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.3 kB | 58.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 7.03 kB | 7.03 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-20f9619..dule.js gzip | 6.31 kB | 6.31 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.1 kB | 53.1 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-41ceea0..6b62.js gzip | 1.35 kB | 1.35 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.75 kB | 7.75 kB | ✓ |
Client Pages Modern
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-2d41a89..dule.js gzip | 1.31 kB | 1.31 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.4 kB | 5.4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
index.html gzip | 1 kB | 1 kB | ✓ |
link.html gzip | 1.01 kB | 1.01 kB | ✓ |
withRouter.html gzip | 996 B | 996 B | ✓ |
Overall change | 3.01 kB | 3.01 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
buildDuration | 13.1s | 13.3s | |
nodeModulesSize | 91.3 MB | 91.3 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
677f882d2ed8..3aa9.js gzip | 11.3 kB | 11.3 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-fc2ed98..cd2b.js gzip | 7.33 kB | 7.33 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.3 kB | 58.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 7.03 kB | 7.03 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-20f9619..dule.js gzip | 6.31 kB | 6.31 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.1 kB | 53.1 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-41ceea0..6b62.js gzip | 1.35 kB | 1.35 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.75 kB | 7.75 kB | ✓ |
Client Pages Modern
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-2d41a89..dule.js gzip | 1.31 kB | 1.31 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.4 kB | 5.4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Serverless bundles
vercel/next.js canary | yordis/next.js yordis/with-apollo-proposal | Change | |
---|---|---|---|
_error.js | 1.06 MB | 1.06 MB | ✓ |
404.html | 4.73 kB | 4.73 kB | ✓ |
hooks.html | 3.92 kB | 3.92 kB | ✓ |
index.js | 1.06 MB | 1.06 MB | ✓ |
link.js | 1.11 MB | 1.11 MB | ✓ |
routerDirect.js | 1.1 MB | 1.1 MB | ✓ |
withRouter.js | 1.1 MB | 1.1 MB | ✓ |
Overall change | 5.43 MB | 5.43 MB | ✓ |
return { | ||
...pageProps, | ||
props: { | ||
...pageProps.props, | ||
[APOLLO_STATE_PROP_NAME]: client.cache.extract(), | ||
}, | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be easier to understand and provider the same result, just an idea, you don't have to merge it.
This also has the added benefit that if you don't define props: {}
then it won't be added to pageProps and Next.js will throw as expected.
return { | |
...pageProps, | |
props: { | |
...pageProps.props, | |
[APOLLO_STATE_PROP_NAME]: client.cache.extract(), | |
}, | |
} | |
if (pageProps?.props) { | |
pageProps.props[APOLLO_STATE_PROP_NAME] = client.cache.extract() | |
} | |
return pageProps |
export function useApollo(pageProps) { | ||
const store = useMemo( | ||
() => initializeApollo(pageProps[APOLLO_STATE_PROP_NAME]), | ||
[pageProps] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[pageProps] | |
[pageProps[APOLLO_STATE_PROP_NAME]] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@yordis Hi there 👋 and thank you for the PR.
Added some suggestions!
Closing due to #18436 (comment) |
The intention is to show people the correlation between things, in this case, understand the usage of the same key from the props and the rehydration.
Hopefully, this change will bring value as it has done with some Juniors already.