Skip to content

Conversation

@acdlite
Copy link
Collaborator

@acdlite acdlite commented Nov 6, 2022

Based on #25634

Like promises, this adds support for Context as a React node.

In this initial implementation, the context dependency is added to the parent of child node. This allows the parent to re-reconcile its children when the context updates, so that it can delete the old node if the identity of the child has changed (i.e. if the key or type of an element has changed). But it also means that the parent will replay its entire begin phase. Ideally React would delete the old node and mount the new node without reconciling all the children. I'll leave this for a future optimization.

@facebook-github-bot facebook-github-bot added CLA Signed React Core Team Opened by a member of the React Core Team labels Nov 6, 2022
@sizebot
Copy link

sizebot commented Nov 6, 2022

Comparing: f31005d...1a48bfa

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.min.js +0.47% 154.36 kB 155.09 kB +0.59% 48.99 kB 49.28 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js +0.47% 156.28 kB 157.01 kB +0.62% 49.61 kB 49.92 kB
facebook-www/ReactDOM-prod.classic.js +0.57% 533.22 kB 536.24 kB +0.54% 94.44 kB 94.94 kB
facebook-www/ReactDOM-prod.modern.js +0.58% 518.31 kB 521.34 kB +0.58% 92.26 kB 92.79 kB
facebook-www/ReactDOMForked-prod.classic.js +0.57% 533.22 kB 536.24 kB +0.54% 94.44 kB 94.95 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-prod.js +1.03% 289.56 kB 292.56 kB +1.02% 51.00 kB 51.52 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-profiling.js +0.98% 305.13 kB 308.13 kB +1.01% 53.35 kB 53.89 kB
react-native/implementations/ReactFabric-prod.js +0.95% 316.88 kB 319.87 kB +0.86% 55.92 kB 56.41 kB
react-native/implementations/ReactNativeRenderer-prod.js +0.93% 323.03 kB 326.02 kB +0.85% 56.87 kB 57.35 kB
react-native/implementations/ReactFabric-prod.fb.js +0.91% 327.62 kB 330.61 kB +0.72% 58.04 kB 58.45 kB
facebook-www/ReactART-prod.modern.js +0.91% 325.19 kB 328.16 kB +0.93% 55.01 kB 55.52 kB
react-native/implementations/ReactNativeRenderer-prod.fb.js +0.90% 333.77 kB 336.76 kB +0.71% 59.02 kB 59.43 kB
react-native/implementations/ReactFabric-profiling.js +0.89% 336.06 kB 339.06 kB +0.78% 59.15 kB 59.61 kB
facebook-www/ReactART-prod.classic.js +0.88% 336.14 kB 339.11 kB +0.91% 56.87 kB 57.39 kB
react-native/implementations/ReactNativeRenderer-profiling.js +0.88% 342.29 kB 345.29 kB +0.77% 60.11 kB 60.57 kB
react-native/implementations/ReactFabric-profiling.fb.js +0.85% 354.53 kB 357.52 kB +0.67% 62.19 kB 62.61 kB
react-native/implementations/ReactNativeRenderer-profiling.fb.js +0.83% 360.74 kB 363.74 kB +0.65% 63.24 kB 63.65 kB
oss-stable-semver/react-art/cjs/react-art.production.min.js +0.79% 92.28 kB 93.01 kB +0.85% 28.36 kB 28.60 kB
oss-stable/react-art/cjs/react-art.production.min.js +0.79% 92.31 kB 93.04 kB +0.86% 28.35 kB 28.60 kB
oss-experimental/react-art/cjs/react-art.production.min.js +0.78% 93.72 kB 94.45 kB +0.71% 28.78 kB 28.98 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-dev.js +0.74% 766.39 kB 772.05 kB +0.85% 164.21 kB 165.61 kB
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.production.min.js +0.73% 100.15 kB 100.88 kB +0.83% 30.72 kB 30.97 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.production.min.js +0.73% 100.18 kB 100.91 kB +0.83% 30.72 kB 30.97 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.production.min.js +0.73% 100.24 kB 100.97 kB +0.82% 30.75 kB 31.01 kB
facebook-www/ReactTestRenderer-dev.modern.js +0.72% 782.79 kB 788.45 kB +0.82% 167.52 kB 168.90 kB
facebook-www/ReactTestRenderer-dev.classic.js +0.72% 782.79 kB 788.45 kB +0.82% 167.52 kB 168.90 kB
oss-stable-semver/react-test-renderer/umd/react-test-renderer.production.min.js +0.71% 100.41 kB 101.11 kB +0.85% 31.12 kB 31.38 kB
oss-stable/react-test-renderer/umd/react-test-renderer.production.min.js +0.71% 100.43 kB 101.14 kB +0.84% 31.12 kB 31.38 kB
oss-experimental/react-test-renderer/umd/react-test-renderer.production.min.js +0.71% 100.49 kB 101.20 kB +0.85% 31.15 kB 31.41 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.production.min.js +0.69% 106.13 kB 106.87 kB +0.72% 32.29 kB 32.52 kB
oss-stable/react-reconciler/cjs/react-reconciler.production.min.js +0.69% 106.16 kB 106.89 kB +0.72% 32.31 kB 32.54 kB
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.development.js +0.69% 752.09 kB 757.30 kB +0.80% 162.57 kB 163.87 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.development.js +0.69% 752.11 kB 757.32 kB +0.80% 162.60 kB 163.90 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.development.js +0.69% 752.21 kB 757.42 kB +0.80% 162.63 kB 163.94 kB
oss-stable-semver/react-test-renderer/umd/react-test-renderer.development.js +0.69% 787.86 kB 793.27 kB +0.83% 164.28 kB 165.65 kB
oss-stable/react-test-renderer/umd/react-test-renderer.development.js +0.69% 787.88 kB 793.29 kB +0.83% 164.30 kB 165.67 kB
oss-experimental/react-test-renderer/umd/react-test-renderer.development.js +0.69% 787.98 kB 793.39 kB +0.84% 164.34 kB 165.71 kB
oss-experimental/react-reconciler/cjs/react-reconciler.production.min.js +0.69% 107.57 kB 108.31 kB +0.73% 32.75 kB 32.99 kB
oss-stable-semver/react-art/cjs/react-art.development.js +0.67% 772.61 kB 777.82 kB +0.77% 166.63 kB 167.92 kB
oss-stable/react-art/cjs/react-art.development.js +0.67% 772.63 kB 777.84 kB +0.77% 166.66 kB 167.94 kB
react-native/implementations/ReactFabric-dev.js +0.67% 844.88 kB 850.53 kB +0.73% 183.17 kB 184.50 kB
oss-experimental/react-art/cjs/react-art.development.js +0.67% 780.43 kB 785.64 kB +0.77% 168.05 kB 169.35 kB
react-native/implementations/ReactNativeRenderer-dev.js +0.66% 854.42 kB 860.07 kB +0.73% 185.62 kB 186.97 kB
facebook-www/ReactART-dev.modern.js +0.65% 873.45 kB 879.09 kB +0.73% 184.36 kB 185.70 kB
react-native/implementations/ReactFabric-dev.fb.js +0.64% 881.69 kB 887.34 kB +0.73% 190.29 kB 191.69 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.profiling.min.js +0.64% 115.02 kB 115.76 kB +0.70% 34.47 kB 34.71 kB
oss-stable/react-reconciler/cjs/react-reconciler.profiling.min.js +0.64% 115.05 kB 115.78 kB +0.70% 34.49 kB 34.73 kB
facebook-www/ReactART-dev.classic.js +0.64% 883.91 kB 889.55 kB +0.74% 186.45 kB 187.83 kB
oss-stable-semver/react-server/cjs/react-server.production.min.js +0.64% 24.24 kB 24.40 kB +0.42% 8.29 kB 8.33 kB
oss-stable/react-server/cjs/react-server.production.min.js +0.64% 24.24 kB 24.40 kB +0.42% 8.29 kB 8.33 kB
react-native/implementations/ReactNativeRenderer-dev.fb.js +0.63% 891.21 kB 896.86 kB +0.72% 192.77 kB 194.17 kB
facebook-www/ReactDOMTesting-prod.modern.js +0.63% 480.63 kB 483.67 kB +0.60% 88.20 kB 88.72 kB
oss-stable-semver/react-server/cjs/react-server.development.js +0.63% 145.48 kB 146.40 kB +0.74% 36.21 kB 36.48 kB
oss-stable/react-server/cjs/react-server.development.js +0.63% 145.48 kB 146.40 kB +0.74% 36.21 kB 36.48 kB
oss-experimental/react-reconciler/cjs/react-reconciler.profiling.min.js +0.63% 116.46 kB 117.20 kB +0.70% 34.90 kB 35.15 kB
oss-experimental/react-server/cjs/react-server.development.js +0.63% 146.10 kB 147.02 kB +0.74% 36.40 kB 36.67 kB
oss-experimental/react-server/cjs/react-server.production.min.js +0.62% 24.49 kB 24.64 kB +0.44% 8.38 kB 8.42 kB
oss-stable-semver/react-art/umd/react-art.development.js +0.61% 880.15 kB 885.56 kB +0.73% 184.90 kB 186.26 kB
oss-stable/react-art/umd/react-art.development.js +0.61% 880.17 kB 885.58 kB +0.74% 184.92 kB 186.29 kB
facebook-www/ReactDOMTesting-prod.classic.js +0.61% 496.59 kB 499.63 kB +0.51% 90.57 kB 91.03 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.development.js +0.61% 852.42 kB 857.63 kB +0.71% 180.96 kB 182.25 kB
oss-stable/react-reconciler/cjs/react-reconciler.development.js +0.61% 852.45 kB 857.66 kB +0.71% 180.98 kB 182.27 kB
oss-experimental/react-art/umd/react-art.development.js +0.61% 888.42 kB 893.83 kB +0.72% 186.37 kB 187.71 kB
oss-experimental/react-reconciler/cjs/react-reconciler.development.js +0.61% 860.25 kB 865.46 kB +0.71% 182.40 kB 183.70 kB
facebook-www/ReactDOM-prod.modern.js +0.58% 518.31 kB 521.34 kB +0.58% 92.26 kB 92.79 kB
facebook-www/ReactDOMForked-prod.modern.js +0.58% 518.31 kB 521.34 kB +0.58% 92.26 kB 92.79 kB
facebook-www/ReactDOM-prod.classic.js +0.57% 533.22 kB 536.24 kB +0.54% 94.44 kB 94.94 kB
facebook-www/ReactDOMForked-prod.classic.js +0.57% 533.22 kB 536.24 kB +0.54% 94.44 kB 94.95 kB
oss-stable-semver/react-art/umd/react-art.production.min.js +0.57% 128.12 kB 128.84 kB +0.55% 39.58 kB 39.80 kB
oss-stable/react-art/umd/react-art.production.min.js +0.57% 128.14 kB 128.86 kB +0.55% 39.58 kB 39.79 kB
oss-experimental/react-art/umd/react-art.production.min.js +0.56% 129.56 kB 130.28 kB +0.48% 40.01 kB 40.21 kB
facebook-www/ReactDOM-profiling.modern.js +0.55% 548.45 kB 551.48 kB +0.55% 96.77 kB 97.31 kB
facebook-www/ReactDOMForked-profiling.modern.js +0.55% 548.45 kB 551.48 kB +0.55% 96.77 kB 97.31 kB
facebook-www/ReactDOM-profiling.classic.js +0.54% 563.45 kB 566.48 kB +0.52% 98.97 kB 99.48 kB
facebook-www/ReactDOMForked-profiling.classic.js +0.54% 563.45 kB 566.48 kB +0.52% 98.97 kB 99.48 kB
oss-stable-semver/react-dom/umd/react-dom.production.min.js +0.48% 154.36 kB 155.10 kB +0.43% 49.70 kB 49.92 kB
oss-stable/react-dom/umd/react-dom.production.min.js +0.48% 154.38 kB 155.12 kB +0.43% 49.70 kB 49.92 kB
oss-stable-semver/react-dom/cjs/react-dom.production.min.js +0.47% 154.33 kB 155.06 kB +0.59% 48.99 kB 49.28 kB
oss-stable/react-dom/cjs/react-dom.production.min.js +0.47% 154.36 kB 155.09 kB +0.59% 48.99 kB 49.28 kB
oss-experimental/react-dom/umd/react-dom.production.min.js +0.47% 156.28 kB 157.02 kB +0.47% 50.37 kB 50.61 kB
facebook-www/ReactDOMTesting-dev.modern.js +0.47% 1,205.86 kB 1,211.51 kB +0.50% 266.83 kB 268.18 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js +0.47% 156.28 kB 157.01 kB +0.62% 49.61 kB 49.92 kB
facebook-www/ReactDOMTesting-dev.classic.js +0.46% 1,235.89 kB 1,241.54 kB +0.49% 272.61 kB 273.94 kB
oss-experimental/react-dom/cjs/react-dom-unstable_testing.production.min.js +0.45% 160.68 kB 161.41 kB +0.54% 51.43 kB 51.71 kB
oss-experimental/react-dom/umd/react-dom.profiling.min.js +0.45% 165.12 kB 165.86 kB +0.46% 52.68 kB 52.92 kB
oss-stable-semver/react-dom/cjs/react-dom.profiling.min.js +0.45% 163.84 kB 164.58 kB +0.41% 51.50 kB 51.71 kB
oss-stable/react-dom/cjs/react-dom.profiling.min.js +0.45% 163.87 kB 164.60 kB +0.41% 51.50 kB 51.71 kB
oss-stable-semver/react-dom/umd/react-dom.profiling.min.js +0.44% 163.20 kB 163.93 kB +0.41% 51.97 kB 52.19 kB
oss-stable/react-dom/umd/react-dom.profiling.min.js +0.44% 163.23 kB 163.95 kB +0.41% 51.97 kB 52.18 kB
oss-experimental/react-dom/cjs/react-dom.profiling.min.js +0.44% 165.79 kB 166.52 kB +0.50% 52.10 kB 52.36 kB
oss-stable-semver/react-dom/cjs/react-dom.development.js +0.43% 1,202.32 kB 1,207.53 kB +0.47% 266.62 kB 267.88 kB
oss-stable/react-dom/cjs/react-dom.development.js +0.43% 1,202.34 kB 1,207.55 kB +0.47% 266.64 kB 267.90 kB
oss-experimental/react-dom/cjs/react-dom-unstable_testing.development.js +0.43% 1,205.52 kB 1,210.73 kB +0.48% 267.20 kB 268.47 kB
oss-experimental/react-dom/cjs/react-dom.development.js +0.43% 1,212.39 kB 1,217.60 kB +0.47% 268.62 kB 269.88 kB
oss-stable-semver/react-dom/umd/react-dom.development.js +0.43% 1,260.76 kB 1,266.17 kB +0.48% 269.60 kB 270.89 kB
oss-stable/react-dom/umd/react-dom.development.js +0.43% 1,260.78 kB 1,266.19 kB +0.48% 269.62 kB 270.92 kB
oss-experimental/react-dom/umd/react-dom.development.js +0.43% 1,271.38 kB 1,276.79 kB +0.48% 271.58 kB 272.88 kB
facebook-www/ReactDOMForked-dev.modern.js +0.42% 1,332.06 kB 1,337.69 kB +0.44% 289.64 kB 290.92 kB
facebook-www/ReactDOM-dev.modern.js +0.42% 1,332.06 kB 1,337.69 kB +0.44% 289.64 kB 290.93 kB
facebook-www/ReactDOMForked-dev.classic.js +0.42% 1,357.05 kB 1,362.69 kB +0.42% 294.25 kB 295.50 kB
facebook-www/ReactDOM-dev.classic.js +0.42% 1,357.05 kB 1,362.69 kB +0.42% 294.25 kB 295.50 kB
facebook-www/ReactDOMServer-prod.modern.js +0.36% 117.08 kB 117.50 kB +0.25% 22.73 kB 22.79 kB
facebook-www/ReactDOMServer-prod.classic.js +0.35% 120.22 kB 120.64 kB +0.25% 23.37 kB 23.43 kB
facebook-www/ReactDOMServerStreaming-dev.modern.js +0.32% 321.79 kB 322.81 kB +0.39% 72.34 kB 72.63 kB
facebook-www/ReactDOMServerStreaming-prod.modern.js +0.31% 121.77 kB 122.16 kB +0.21% 24.02 kB 24.07 kB
facebook-www/ReactDOMServer-dev.modern.js +0.31% 326.31 kB 327.33 kB +0.39% 73.36 kB 73.65 kB
oss-stable-semver/react-dom/cjs/react-dom-server-legacy.browser.production.min.js +0.31% 50.65 kB 50.81 kB +0.27% 15.57 kB 15.61 kB
oss-stable/react-dom/cjs/react-dom-server-legacy.browser.production.min.js +0.31% 50.68 kB 50.83 kB +0.26% 15.59 kB 15.63 kB
oss-stable-semver/react-dom/umd/react-dom-server-legacy.browser.production.min.js +0.31% 50.74 kB 50.90 kB +0.16% 15.82 kB 15.85 kB
facebook-www/ReactDOMServer-dev.classic.js +0.31% 333.01 kB 334.03 kB +0.38% 74.80 kB 75.08 kB
oss-stable/react-dom/umd/react-dom-server-legacy.browser.production.min.js +0.31% 50.77 kB 50.92 kB +0.15% 15.84 kB 15.87 kB
oss-experimental/react-dom/cjs/react-dom-server-legacy.browser.production.min.js +0.30% 51.01 kB 51.16 kB +0.20% 15.73 kB 15.76 kB
oss-experimental/react-dom/umd/react-dom-server-legacy.browser.production.min.js +0.30% 51.10 kB 51.25 kB +0.13% 15.96 kB 15.98 kB
oss-stable-semver/react-dom/cjs/react-dom-server.browser.production.min.js +0.30% 51.57 kB 51.73 kB +0.19% 16.41 kB 16.44 kB
oss-stable/react-dom/cjs/react-dom-server.browser.production.min.js +0.30% 51.60 kB 51.75 kB +0.20% 16.43 kB 16.46 kB
oss-experimental/react-dom/cjs/react-dom-static.browser.production.min.js +0.30% 51.80 kB 51.96 kB +0.16% 16.51 kB 16.54 kB
oss-experimental/react-dom/cjs/react-dom-server.browser.production.min.js +0.30% 51.92 kB 52.08 kB +0.18% 16.56 kB 16.59 kB
oss-stable-semver/react-dom/umd/react-dom-server.browser.production.min.js +0.30% 51.63 kB 51.78 kB +0.15% 16.65 kB 16.67 kB
oss-stable/react-dom/umd/react-dom-server.browser.production.min.js +0.30% 51.65 kB 51.81 kB +0.15% 16.67 kB 16.70 kB
oss-experimental/react-dom/umd/react-dom-server.browser.production.min.js +0.29% 51.98 kB 52.13 kB +0.24% 16.78 kB 16.82 kB
oss-stable-semver/react-dom/cjs/react-dom-server.browser.development.js +0.29% 316.27 kB 317.19 kB +0.36% 72.66 kB 72.93 kB
oss-stable/react-dom/cjs/react-dom-server.browser.development.js +0.29% 316.29 kB 317.21 kB +0.36% 72.68 kB 72.95 kB
oss-experimental/react-dom/cjs/react-dom-static.browser.development.js +0.29% 316.89 kB 317.81 kB +0.36% 72.85 kB 73.11 kB
oss-stable-semver/react-dom/cjs/react-dom-server-legacy.browser.development.js +0.29% 317.06 kB 317.98 kB +0.37% 72.46 kB 72.74 kB
oss-stable/react-dom/cjs/react-dom-server-legacy.browser.development.js +0.29% 317.08 kB 318.00 kB +0.37% 72.49 kB 72.76 kB
oss-stable-semver/react-dom/cjs/react-dom-server.node.development.js +0.29% 317.43 kB 318.35 kB +0.37% 72.60 kB 72.86 kB
oss-stable/react-dom/cjs/react-dom-server.node.development.js +0.29% 317.46 kB 318.38 kB +0.37% 72.62 kB 72.89 kB
oss-experimental/react-dom/cjs/react-dom-server.browser.development.js +0.29% 317.59 kB 318.51 kB +0.36% 73.04 kB 73.30 kB
oss-stable-semver/react-dom/umd/react-dom-server.browser.development.js +0.29% 331.66 kB 332.62 kB +0.38% 73.42 kB 73.69 kB
oss-stable/react-dom/umd/react-dom-server.browser.development.js +0.29% 331.68 kB 332.64 kB +0.38% 73.44 kB 73.72 kB
oss-experimental/react-dom/cjs/react-dom-server-legacy.browser.development.js +0.29% 318.38 kB 319.30 kB +0.37% 72.84 kB 73.11 kB
oss-stable-semver/react-dom/umd/react-dom-server-legacy.browser.development.js +0.29% 332.46 kB 333.42 kB +0.38% 73.24 kB 73.51 kB
oss-stable/react-dom/umd/react-dom-server-legacy.browser.development.js +0.29% 332.49 kB 333.45 kB +0.37% 73.26 kB 73.53 kB
oss-experimental/react-dom/cjs/react-dom-static.node.development.js +0.29% 318.71 kB 319.63 kB +0.36% 73.06 kB 73.33 kB
oss-experimental/react-dom/cjs/react-dom-server.node.development.js +0.29% 318.75 kB 319.67 kB +0.37% 72.97 kB 73.23 kB
oss-stable-semver/react-dom/cjs/react-dom-server-legacy.node.development.js +0.29% 318.77 kB 319.69 kB +0.37% 72.93 kB 73.20 kB
oss-stable/react-dom/cjs/react-dom-server-legacy.node.development.js +0.29% 318.79 kB 319.71 kB +0.37% 72.96 kB 73.22 kB
oss-experimental/react-dom/umd/react-dom-server.browser.development.js +0.29% 333.06 kB 334.02 kB +0.38% 73.78 kB 74.06 kB
oss-experimental/react-dom/umd/react-dom-server-legacy.browser.development.js +0.29% 333.86 kB 334.82 kB +0.37% 73.61 kB 73.88 kB
oss-experimental/react-dom/cjs/react-dom-server-legacy.node.development.js +0.29% 320.09 kB 321.01 kB +0.37% 73.31 kB 73.58 kB
oss-stable-semver/react-dom/cjs/react-dom-server-legacy.node.production.min.js +0.28% 55.37 kB 55.53 kB +0.22% 17.02 kB 17.06 kB
oss-stable/react-dom/cjs/react-dom-server-legacy.node.production.min.js +0.28% 55.40 kB 55.55 kB +0.22% 17.04 kB 17.08 kB
oss-experimental/react-dom/cjs/react-dom-server-legacy.node.production.min.js +0.28% 55.79 kB 55.94 kB +0.22% 17.20 kB 17.24 kB
oss-stable-semver/react-dom/cjs/react-dom-server.node.production.min.js +0.28% 55.87 kB 56.03 kB +0.20% 17.73 kB 17.77 kB
oss-stable/react-dom/cjs/react-dom-server.node.production.min.js +0.28% 55.90 kB 56.05 kB +0.20% 17.76 kB 17.79 kB
oss-experimental/react-dom/cjs/react-dom-server.node.production.min.js +0.27% 56.29 kB 56.44 kB +0.18% 17.91 kB 17.94 kB
oss-experimental/react-dom/cjs/react-dom-static.node.production.min.js +0.27% 56.29 kB 56.44 kB +0.18% 17.90 kB 17.94 kB

Generated by 🚫 dangerJS against 1a48bfa

@acdlite acdlite force-pushed the context-as-node branch 2 times, most recently from 747bac7 to 63b51d3 Compare November 6, 2022 20:12
@acdlite acdlite changed the title Support Context as React node (Fiber) Support Context as renderable node Nov 6, 2022
@acdlite acdlite marked this pull request as ready for review November 6, 2022 20:19
@acdlite acdlite force-pushed the context-as-node branch 2 times, most recently from a665a00 to 1a48bfa Compare November 18, 2022 21:12
Like promises, this adds support for Context as a React node.

In this initial implementation, the context dependency is added to the
parent of child node. This allows the parent to re-reconcile its
children when the context updates, so that it can delete the old node if
the identity of the child has changed (i.e. if the key or type of an
element has changed). But it also means that the parent will replay
its entire begin phase. Ideally React would delete the old node and
mount the new node without reconciling all the children. I'll leave this
for a future optimization.
@react-sizebot
Copy link

Comparing: d4f58c3...8264f0d

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.min.js +0.21% 157.23 kB 157.57 kB +0.17% 49.74 kB 49.83 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js +0.21% 159.24 kB 159.58 kB +0.19% 50.41 kB 50.51 kB
facebook-www/ReactDOM-prod.classic.js +0.27% 540.68 kB 542.16 kB +0.14% 96.09 kB 96.23 kB
facebook-www/ReactDOM-prod.modern.js +0.28% 524.55 kB 526.02 kB +0.15% 93.78 kB 93.92 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-prod.js +0.52% 290.86 kB 292.36 kB +0.25% 51.46 kB 51.58 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-profiling.js +0.49% 306.61 kB 308.11 kB +0.23% 53.85 kB 53.97 kB
react-native/implementations/ReactFabric-prod.js +0.48% 313.23 kB 314.73 kB +0.23% 55.22 kB 55.35 kB
react-native/implementations/ReactNativeRenderer-prod.js +0.47% 320.34 kB 321.84 kB +0.24% 56.54 kB 56.68 kB
react-native/implementations/ReactFabric-prod.fb.js +0.46% 323.92 kB 325.43 kB +0.23% 57.25 kB 57.38 kB
react-native/implementations/ReactNativeRenderer-prod.fb.js +0.45% 331.03 kB 332.54 kB +0.25% 58.62 kB 58.77 kB
facebook-www/ReactART-prod.modern.js +0.45% 326.73 kB 328.20 kB +0.22% 55.51 kB 55.64 kB
react-native/implementations/ReactFabric-profiling.js +0.45% 332.56 kB 334.07 kB +0.24% 58.42 kB 58.56 kB
react-native/implementations/ReactNativeRenderer-profiling.js +0.44% 339.76 kB 341.26 kB +0.23% 59.76 kB 59.90 kB
facebook-www/ReactART-prod.classic.js +0.44% 337.71 kB 339.19 kB +0.21% 57.42 kB 57.54 kB
react-native/implementations/ReactFabric-profiling.fb.js +0.43% 351.11 kB 352.61 kB +0.22% 61.42 kB 61.56 kB
react-native/implementations/ReactNativeRenderer-profiling.fb.js +0.42% 358.28 kB 359.78 kB +0.21% 62.85 kB 62.98 kB
oss-stable-semver/react-art/cjs/react-art.production.min.js +0.36% 92.95 kB 93.28 kB +0.32% 28.55 kB 28.64 kB
oss-stable/react-art/cjs/react-art.production.min.js +0.36% 92.99 kB 93.33 kB +0.32% 28.57 kB 28.67 kB
oss-experimental/react-art/cjs/react-art.production.min.js +0.35% 94.50 kB 94.83 kB +0.28% 29.02 kB 29.10 kB
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.production.min.js +0.33% 100.86 kB 101.19 kB +0.29% 30.89 kB 30.98 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.production.min.js +0.33% 100.91 kB 101.24 kB +0.29% 30.91 kB 31.01 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.production.min.js +0.33% 101.03 kB 101.37 kB +0.30% 30.95 kB 31.05 kB
oss-stable-semver/react-test-renderer/umd/react-test-renderer.production.min.js +0.33% 101.22 kB 101.55 kB +0.27% 31.32 kB 31.41 kB
oss-stable/react-test-renderer/umd/react-test-renderer.production.min.js +0.33% 101.27 kB 101.60 kB +0.27% 31.34 kB 31.43 kB
oss-experimental/react-test-renderer/umd/react-test-renderer.production.min.js +0.33% 101.39 kB 101.73 kB +0.31% 31.40 kB 31.50 kB
facebook-www/ReactDOMTesting-prod.modern.js +0.31% 486.54 kB 488.04 kB +0.16% 89.54 kB 89.68 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.production.min.js +0.30% 109.54 kB 109.88 kB +0.26% 33.20 kB 33.29 kB
oss-stable/react-reconciler/cjs/react-reconciler.production.min.js +0.30% 109.57 kB 109.90 kB +0.26% 33.22 kB 33.31 kB
oss-experimental/react-reconciler/cjs/react-reconciler.production.min.js +0.30% 111.07 kB 111.40 kB +0.28% 33.68 kB 33.77 kB
facebook-www/ReactDOMTesting-prod.classic.js +0.30% 502.19 kB 503.69 kB +0.15% 91.81 kB 91.94 kB
oss-stable-semver/react-server/cjs/react-server.production.min.js +0.29% 24.42 kB 24.49 kB +0.16% 8.32 kB 8.34 kB
oss-stable/react-server/cjs/react-server.production.min.js +0.29% 24.42 kB 24.49 kB +0.16% 8.32 kB 8.34 kB
oss-experimental/react-server/cjs/react-server.production.min.js +0.29% 24.68 kB 24.75 kB +0.15% 8.42 kB 8.43 kB
facebook-www/ReactDOM-prod.modern.js +0.28% 524.55 kB 526.02 kB +0.15% 93.78 kB 93.92 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.profiling.min.js +0.28% 118.54 kB 118.87 kB +0.28% 35.42 kB 35.52 kB
oss-stable/react-reconciler/cjs/react-reconciler.profiling.min.js +0.28% 118.56 kB 118.90 kB +0.29% 35.44 kB 35.54 kB
oss-experimental/react-reconciler/cjs/react-reconciler.profiling.min.js +0.28% 120.06 kB 120.40 kB +0.31% 35.88 kB 35.99 kB
facebook-www/ReactDOM-prod.classic.js +0.27% 540.68 kB 542.16 kB +0.14% 96.09 kB 96.23 kB
facebook-www/ReactDOM-profiling.modern.js +0.27% 554.78 kB 556.26 kB +0.14% 98.16 kB 98.30 kB
facebook-www/ReactDOM-profiling.classic.js +0.26% 571.02 kB 572.49 kB +0.14% 100.59 kB 100.73 kB
oss-stable-semver/react-art/umd/react-art.production.min.js +0.26% 130.22 kB 130.56 kB +0.18% 40.67 kB 40.74 kB
oss-stable/react-art/umd/react-art.production.min.js +0.26% 130.27 kB 130.61 kB +0.18% 40.69 kB 40.76 kB
oss-experimental/react-art/umd/react-art.production.min.js +0.25% 131.78 kB 132.11 kB +0.17% 41.16 kB 41.23 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-dev.js +0.22% 769.56 kB 771.26 kB +0.11% 165.84 kB 166.02 kB
facebook-www/ReactTestRenderer-dev.modern.js +0.22% 785.82 kB 787.52 kB +0.10% 169.05 kB 169.22 kB
facebook-www/ReactTestRenderer-dev.classic.js +0.22% 785.82 kB 787.52 kB +0.10% 169.05 kB 169.22 kB
oss-stable-semver/react-dom/cjs/react-dom.production.min.js +0.21% 157.16 kB 157.50 kB +0.17% 49.72 kB 49.81 kB
oss-stable/react-dom/cjs/react-dom.production.min.js +0.21% 157.23 kB 157.57 kB +0.17% 49.74 kB 49.83 kB
oss-stable-semver/react-dom/umd/react-dom.production.min.js +0.21% 157.25 kB 157.58 kB +0.23% 50.34 kB 50.45 kB
oss-stable/react-dom/umd/react-dom.production.min.js +0.21% 157.32 kB 157.66 kB +0.23% 50.36 kB 50.48 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js +0.21% 159.24 kB 159.58 kB +0.19% 50.41 kB 50.51 kB
oss-experimental/react-dom/umd/react-dom.production.min.js +0.21% 159.33 kB 159.66 kB +0.15% 51.04 kB 51.12 kB
oss-experimental/react-dom/cjs/react-dom-unstable_testing.production.min.js +0.20% 163.63 kB 163.96 kB +0.16% 52.21 kB 52.29 kB
react-native/implementations/ReactFabric-dev.js +0.20% 836.34 kB 838.04 kB +0.10% 180.69 kB 180.87 kB
react-native/implementations/ReactNativeRenderer-dev.js +0.20% 849.47 kB 851.17 kB +0.10% 184.51 kB 184.68 kB
oss-stable-semver/react-dom/umd/react-dom.profiling.min.js +0.20% 166.22 kB 166.55 kB +0.24% 52.71 kB 52.84 kB
oss-stable/react-dom/umd/react-dom.profiling.min.js +0.20% 166.29 kB 166.62 kB +0.25% 52.73 kB 52.86 kB

Generated by 🚫 dangerJS against 8264f0d

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed React Core Team Opened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants