implementation with useContextSelector (Experimental) ⚠️ #1350
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements the connect api for and hooks apis using a proposed RFC: Context Selectors
This is not an official React API
Goals
The point of this PR is to illustrate how libraries can shrink and become less complicated with this proposed API change. Please note not all tests pass because not all tests are relevant. It's possible there are edge case bugs too, this PR is for exploration and illustration, not for merging.
Claims
How to use
get a working copy of react with useContextSelector
yarn build
(will take a while)cd build/node_modules/react && npm link
cd ../react-dom && npm link
checkout this react-redux branch
gnoff-context-selectors
npm link react react-dom
npx jest
(some tests fail but you should get most passing)Quick Access
You can see a built version of both the react and react-redux lib here: https://codesandbox.io/s/react-redux-context-selector-truop
gzip sizes
master: around 5.69kb
this PR: around 4.39kb
these sizes should be smaller in real bundles if dependency deduping is working correctly. this means that relative decrease in size should be magnified