Skip to content
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

Prevent extraneous re-renders with next/dynamic #11587

Merged
merged 3 commits into from
Apr 2, 2020
Merged

Prevent extraneous re-renders with next/dynamic #11587

merged 3 commits into from
Apr 2, 2020

Conversation

devknoll
Copy link
Contributor

@devknoll devknoll commented Apr 2, 2020

Adds memoization to address #11393.

@ijjk
Copy link
Member

ijjk commented Apr 2, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
buildDuration 10.5s 10.4s -47ms
nodeModulesSize 47.7 MB 47.7 MB ⚠️ +180 B
Client Bundles (main, webpack, commons)
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
main-HASH.js gzip 6.24 kB 6.24 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c6c1.js gzip 10.1 kB 10.1 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.2 kB 56.2 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.71 kB 6.71 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.4 kB 51.4 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
index.html gzip 918 B 918 B
link.html gzip 926 B 926 B
withRouter.html gzip 916 B 916 B
Overall change 2.76 kB 2.76 kB

Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
buildDuration 11.2s 11.1s -102ms
nodeModulesSize 47.7 MB 47.7 MB ⚠️ +180 B
Client Bundles (main, webpack, commons)
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
main-HASH.js gzip 6.24 kB 6.24 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c6c1.js gzip 10.1 kB 10.1 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.2 kB 56.2 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.71 kB 6.71 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.4 kB 51.4 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall decrease ✓
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_error.js gzip 232 kB 233 kB ⚠️ +507 B
404.html gzip 1.32 kB 1.32 kB
hooks.html gzip 959 B 959 B
index.js gzip 232 kB 232 kB -269 B
link.js gzip 243 kB 243 kB ⚠️ +32 B
routerDirect.js gzip 241 kB 240 kB -289 B
withRouter.js gzip 241 kB 240 kB -284 B
Overall change 1.19 MB 1.19 MB -303 B

@devknoll devknoll marked this pull request as ready for review April 2, 2020 06:19
@ijjk
Copy link
Member

ijjk commented Apr 2, 2020

Stats from current PR

Default Server Mode
General Overall increase ⚠️
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
buildDuration 10.5s 10.2s -284ms
nodeModulesSize 47.7 MB 47.7 MB ⚠️ +224 B
Client Bundles (main, webpack, commons)
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
main-HASH.js gzip 6.24 kB 6.24 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c6c1.js gzip 10.1 kB 10.1 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.2 kB 56.2 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.71 kB 6.71 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.4 kB 51.4 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
index.html gzip 918 B 918 B
link.html gzip 926 B 926 B
withRouter.html gzip 916 B 916 B
Overall change 2.76 kB 2.76 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
buildDuration 11.1s 10.9s -149ms
nodeModulesSize 47.7 MB 47.7 MB ⚠️ +224 B
Client Bundles (main, webpack, commons)
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
main-HASH.js gzip 6.24 kB 6.24 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c6c1.js gzip 10.1 kB 10.1 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.2 kB 56.2 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.71 kB 6.71 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.4 kB 51.4 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary devknoll/next.js fix-subscription-overload Change
_error.js gzip 232 kB 232 kB ⚠️ +18 B
404.html gzip 1.32 kB 1.32 kB
hooks.html gzip 959 B 959 B
index.js gzip 232 kB 232 kB ⚠️ +29 B
link.js gzip 242 kB 243 kB ⚠️ +431 B
routerDirect.js gzip 241 kB 241 kB ⚠️ +30 B
withRouter.js gzip 241 kB 240 kB -133 B
Overall change 1.19 MB 1.19 MB ⚠️ +375 B

@Mohsan1995
Copy link

Hi,
I still have the issue of the rerender, even with this fix.

@vercel vercel locked as resolved and limited conversation to collaborators Jan 30, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants