Update dependency react-redux to v7 #426
Open
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 contains the following updates:
6.0.1
->7.0.3
Release Notes
reduxjs/react-redux
v7.0.3
Compare Source
This release includes a bugfix for a timing issue in
connect()
, and also lowers our React peer dependency slightly to allow better usage with React Native 0.59.Changes
v7.0.2
Compare Source
This is a bug fix release with a small performance improvement and fix for nested component unmounting.
Changes
v7.0.1
Compare Source
React-Redux version 7 resolves the performance issues that were reported with version 6, and lays the groundwork for us to design and ship a public
useRedux()
-type Hooks API in a later 7.x release.The major change for this release is that
connect
is now implemented using Hooks internally. Because of this, we now require a minimum React version of 16.8.4 or higher.This release has undergone extensive performance benchmarking, and we're confident that it's the fastest version of React-Redux yet! We've also expanded our test suite to cover a number of additional use cases and scenarios.
For discussion on the reasons for the major version change and the development process, see:
issue #1177 - React-Redux Roadmap: v6, Context, Subscriptions, and Hooks.
For discussion on the possible design of a future public hooks API, see:
issue #1179: Discussion: Potential hooks API design
Changes
This release should be public-API-compatible with version 6. The only public breaking change is the update of our React peer dependency from 16.4 to 16.8.4.
In v6, we switched from individual components subscribing to the store, to having
<Provider>
subscribe and components read the store state from React's Context API. This worked, but unfortunately the Context API isn't as optimized for frequent updates as we'd hoped, and our usage patterns led to some folks reporting performance issues in some scenarios.In v7, we've switched back to using direct subscriptions internally, which should improve performance considerably.
(This does result in some changes that are visible to user-facing code, in that updates dispatched in React lifecycle methods are immediately reflected in later component updates. Examples of this include components dispatching while mounting in an SSR environment. This was the behavior through v5, and is not considered part of our public API.)
Batched Updates
React has an
unstable_batchedUpdates
API that it uses to group together multiple updates from the same event loop tick. The React team encouraged us to use this, and we've updated our internal Redux subscription handling to leverage this API. This should also help improve performance, by cutting down on the number of distinct renders caused by a Redux store update.connect
Rewritten with HooksWe've reimplemented our
connect
wrapper component to use hooks internally. While it may not be visible to you, it's nice to know we can take advantage of the latest React goodies!Public API Changes
Return of
store
as a PropWe've brought back the ability to pass a store as a prop directly to connected components. This was removed in version 6 due to internal implementation changes (components no longer subscribed to the store directly). Some users expressed concerns that working with context in unit tests was not sufficient. Since our components use direct subscriptions again, we've reimplemented this option, and that should resolve those concerns.
New
batch
API for Batched React UpdatesReact's
unstable_batchedUpdate()
API allows any React updates in an event loop tick to be batched together into a single render pass. React already uses this internally for its own event handler callbacks. This API is actually part of the renderer packages like ReactDOM and React Native, not the React core itself.Since React-Redux needs to work in both ReactDOM and React Native environments, we've taken care of importing this API from the correct renderer at build time for our own use. We also now re-export this function publicly ourselves, renamed to
batch()
. You can use it to ensure that multiple actions dispatched outside of React only result in a single render update, like this:If you are using an alternative React renderer, like the Ink CLI renderer, that method isn't available for us to import. In that case, you will need to change your code to import from the new
react-redux/es/alternate-renderers
entry point instead. (Usereact-redux/lib/alternate-renderers
for the CJS version). That entry point exports a no-op version ofbatch()
that just executes the callback immediately, and does not provide React batching.In that situation, you may want to consider aliasing
react-redux
to one of those alternate entry points in your build tool for the best compatibility, especially if you're using any other libraries that depend on React-Redux.Thanks to:
v7.0.0
Compare Source
Initial release, but we missed some updated docs. Ignore this 😄
Renovate configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻️ Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "
rebase!
".🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot. View repository job log here.