This repository has been archived by the owner on Sep 1, 2020. It is now read-only.
forked from react-boilerplate/react-boilerplate
-
Notifications
You must be signed in to change notification settings - Fork 0
Update dependency react-redux to v7 (dev) #53
Open
renovate
wants to merge
1
commit into
dev
Choose a base branch
from
renovate/dev-react-redux-7.x
base: dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov Report
@@ Coverage Diff @@
## dev #53 +/- ##
===================================
Coverage 100% 100%
===================================
Files 105 105
Lines 854 854
Branches 112 112
===================================
Hits 854 854 Continue to review full report at Codecov.
|
Codecov Report
@@ Coverage Diff @@
## dev #53 +/- ##
===================================
Coverage 100% 100%
===================================
Files 105 105
Lines 854 854
Branches 112 112
===================================
Hits 854 854 Continue to review full report at Codecov.
|
renovate
bot
changed the title
Update dependency @types/react-redux to v7.0.5 (dev)
Update dependency @types/react-redux to v7.0.6 (dev)
Mar 29, 2019
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
from
March 29, 2019 22:29
69ca28a
to
98a798c
Compare
renovate
bot
changed the title
Update dependency @types/react-redux to v7.0.6 (dev)
Update dependency react-redux to v7 (dev)
Apr 9, 2019
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
2 times, most recently
from
April 12, 2019 20:34
db62b11
to
e483093
Compare
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
2 times, most recently
from
April 19, 2019 16:58
9e00b66
to
29015f7
Compare
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
2 times, most recently
from
April 28, 2019 16:40
792f0e2
to
e968c55
Compare
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
from
May 13, 2019 22:58
e968c55
to
c99e6b3
Compare
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
from
June 19, 2019 12:57
c99e6b3
to
223fed3
Compare
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
from
July 13, 2019 08:00
223fed3
to
1739412
Compare
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
from
August 23, 2019 07:58
1739412
to
7e49c10
Compare
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
from
September 5, 2019 06:00
7e49c10
to
20434d5
Compare
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
from
October 4, 2019 11:59
20434d5
to
4ef1620
Compare
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
from
November 11, 2019 21:00
4ef1620
to
d32de43
Compare
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
from
January 18, 2020 17:00
d32de43
to
a597e37
Compare
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
from
February 8, 2020 16:55
a597e37
to
a6a7682
Compare
renovate
bot
force-pushed
the
renovate/dev-react-redux-7.x
branch
from
March 14, 2020 14:00
a6a7682
to
e6e13cb
Compare
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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:
5.1.1
->7.2.0
7.0.3
->7.1.7
Release Notes
reduxjs/react-redux
v7.2.0
Compare Source
This release fixes two bugs, an algorithmic problem with unsubscribing components and a memory leak with
connect
. It also has optimizations for production bundle size, and adds a couple small improvements to developer readability while debugging.Changes
Bug Fixes
connect
in v7 is implemented using hooks, and the hooks usage captures numerous values from the surrounding scope. We received a PR informing us that the way we were capturing these values would likely result in a copy of the first version of its props being kept alive indefinitely.This memory leak has been fixed by extracting a custom hook that receives all the necessary values as arguments, so that they're not captured via closure.
We also received a PR letting us know that the unsubscribe logic had a quadratic algorithm in it, as removing a subscriber would use an
indexOf(listener)
check to remove that callback. If there were a large number of subscribers, that line's runtime would increase rapidly, causing slowdowns.This algorithm has been replaced with tracking subscribers via a linked list, which drastically improves the runtime of this section of the code even with large numbers of subscribers.
Thanks to @larrylin28 and @wurstbonbon for finding these bugs and submitting PRs to fix them!
Bundle Size Improvements
We've made a number of small tweaks to the codebase to improve the ability of bundlers to shake and minimize the final included size in a bundle. The net result is that
react-redux@7.2.0
is smaller than 7.1.3, dropping 1.3K min and 0.6K min+gzip. (In fact, it's even smaller than the pre-hooks 7.0.0 when gzipped!)Thanks to @Andarist for doing most of the work on this!
Debugging Improvements
The
ReactReduxContext
instance now has adisplayName
set, so it should show up in the React DevTools asReactRedux.Provider
.Also, when an error is caught in
useSelector
and re-thrown, we now append the original stack trace.Thanks to @pieplu and @r3dm1ke for these!
Changelog
UseEffect
(@larrylin28 - #1506)5e0c50d
)58ae5ed
)v7.1.3
Compare Source
Forgot to remove a
console
statement before I published 7.1.2. Oops!Lint your source code before publishing, folks.
Changes
30101bb
)v7.1.2
Compare Source
This releases fixes a subtle timing bug with
connect
anduseSelector
in React Native environments, and adds the ability to pass through non-Redux-store values as astore
prop.Fixed Store Subscriptions in React Native
Our current implementation requires cascading updates down through connected components. This is primarily done during React's "commit phase" via the
useLayoutEffect
hook. Unfortunately, React warns whenuseLayoutEffect
is called in SSR environments, so we try to feature-detect that and fall back touseEffect
just to avoid that warning.Unfortunately, a tweak to the feature detection conditions during the pre-7.1.0 work caused the check to accidentally fail in React Native environments. This meant that
useEffect
was actually being used all the time, and this led to occasional timing bugs such as #1313 and #1437 . This affected the previous v7.1.x releases.We've fixed that issue, and added additional test cases to ensure that our code works correctly under React Native.
See #1444 for more details on the feature detection and the fix.
Passing Through Non-Store Values
connect
has always accepted passing a Redux store directly to connected components as a prop namedstore
(with the exception of v6). As a result, thestore
prop has effectively been treated as a "reserved" prop, in much the same way thatkey
andref
are "reserved" prop names handled by React.Some users may be using the word "store" to describe their domain data, and have asked to allow variables that aren't a Redux store through the
store
prop to the component (#1393). We've finally been able to implement that capability.Changes
store
prop (@markerikson - #1447)latestStoreState
field (@Hypnosphi - #1426)388d9e4
)v7.1.1
Compare Source
This release is sponsored by Deft, providing technical teams to high-growth SaaS companies with the processes they need to scale successfully. Please reach out to see how we can help with your software development, systems architecture, and infrastructure design needs.
This release includes some new APIs for those that want to use a custom React Context with our Hooks API, a small memory optimization, and has a fix for when the
store
changes on aProvider
with incompatiblechildren
.Changes
create*Hook
factory APIs (#1309 by @ryaninvents)P.S. On the sponsorship section above, it's a thing we're trying out to see how it feels and if it causes any problems for your workflows. (Don't worry, no ads are coming to your npm installs!) The idea for future releases is to let those that contributed to that release have the opportunity to sponsor that release. We don't need donations, but we definitely do need PRs! Hopefully, it's a fair way to encourage them. Please let us know if it's a problem in any way.
v7.1.0
Compare Source
Hooks!
After much discussion, we've decided these Hook things are probably going to stick around, so we might as well add some. Many thanks to @MrWolfZ, @josepot, @perrin4869, and @mpeyper for their contributions and to everyone else that offered feedback, ideas, and critiques as we built them out. Go open source!
Changes
deps
argument touseSelector
(#1251 by @MrWolfZ)useRedux
(@markerikson)useActions
(@markerikson)deps
argument (#1272 by @josepot)shallowEqual
with reference equality inuseSelector
(#1288 by @perrin4869)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 😄
v6.0.1
Compare Source
This is a minor release with support for react-hot-loader and a few small bug fixes for edge cases.
While you're here, please stop by #1177 to see our roadmap for the next versions of React Redux. We are aware that performance is not so hot in 6.0. Short version: We put too much traffic on React's context API, which isn't really designed for high levels of reads and writes. We're looking to reduce that load and get performance back on track in a minor release, so there won't be backwards compatibility concerns. We have a new extensive benchmark suite to keep us on track and ensure we're not regressing on speed in the future.
And yes, we know about Hooks. Check out #1179.
Changes
context
prop really contains a React context (#1134 by @casdevs)v6.0.0
Compare Source
🎉 This is our first big release supporting the new Context API added in React 16.4!
As such, we now require React 16.4 or higher. Make sure to update your version when updating to this release.
This work has been mostly lead by @cellog and @markerikson, with special guest appearances by yours truly and a whole cast of helpful reviewers.
The
withRef
option toconnect
has been replaced withforwardRef
. If{forwardRef : true}
has been passed toconnect
, adding a ref to the connected wrapper component will actually return the instance of the wrapped component.Passing
store
as a prop to a connected component is no longer supported. Instead, you may pass a customcontext={MyContext}
prop to both<Provider>
and<ConnectedComponent>
. You may also pass{context : MyContext}
as an option toconnect
.Behavior Changes
Any library that attempts to access the store instance out of legacy context will break, because we now put the store state into a
<Context.Provider>
instead. Examples of this includeconnected-react-router
andreact-redux-subspace
. (The current implementation does also put the store itself into that same context. While accessing the store in context is not part of our public API, we will still try to make it possible for other libraries to access it, with the understanding that this could break at any time.)Also, there is a behavior change around dispatching actions in constructors /
componentWillMount
. Previously, dispatching in a parent component's constructor would cause its children to immediately use the updated state as they mounted, because each component read from the store individually. In version 6, all components read the same current store state value from context, which means the tree will be consistent and not have "tearing". This is an improvement overall, but there may be applications that relied on the existing behavior.Changes
null
as a valid plain object prototype inisPlainObject()
(#1075 by @rgrove)v5.1.2
Compare Source
Renovate configuration
📅 Schedule: "before 3am on Monday" (UTC).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻️ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by WhiteSource Renovate. View repository job log here.