[v1] new implementation without react context #35
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.
There was an interesting and shocking tweet from @sebmarkbage.
https://twitter.com/sebmarkbage/status/1219836431972978689
Originally, the implementation of this library didn't use context.
Then, people expects the use of context for global state.
I also wanted to seek the possibility of
unstable_observedBits
.So, the implementation was changed to context based.
Now, if we follow the suggestion in the tweet, I don't think we need context.
Furthermore, the use of unstable observedBits kept this library away from hitting v1.
This PR is to implement the same API without context.
(Precisely, we no longer have
<GlobalStateProvider>
, so it's a breaking change.)The most challenging point is the experimental support of Concurrent Mode,
which was another reason why I used context before.
With the new
useGlobalStateProvider
, it links React state and global state, which allows "state branching," yay!This is for v1.