v1.9.0-rc.0 #2852
markerikson
announced in
Announcements
v1.9.0-rc.0
#2852
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This release candidate includes a new "auto-batching" store enhancer, support for passing some global options to
fetchBaseQuery
, a fix forforceRefetch
behavior, and internal tweaks to checks for missing RTKQ middleware setup.Please try this out and give us feedback (even if it's just "tried updating and everything's fine")! If no further issues come up we intend to publish 1.9 in the next few days.
Docs updates for 1.9 are complete, and can be viewed here:
https://deploy-preview-2401--redux-starter-kit-docs.netlify.app/
Changelog
New Auto-Batching Store Enhancer
There are several different ways to "batch actions" with Redux stores, ranging from reducers to debounced subscriber notifications.
RTK now includes a new
autoBatchEnhancer()
store enhancer that uses a variation on the "debounced notification" approach, inspired by React's technique of batching renders and determining if an update is low-priority or high-priority.The enhancer looks for any actions tagged with an
action.meta[SHOULD_AUTOBATCH] = true
flag, and delays notifying subscribers until the end of the event loop tick. This means that if multiple "auto-batched" actions are dispatched in a row, there will be only one subscriber notification. However, if any "normal-priority" action without that flag is dispatched in the same tick, the enhancer will notify subscribers immediately.This allows Redux users to selectively tag certain actions for effective batching behavior, making this purely opt-in on a per-action basis, while retaining normal notification behavior for all other actions.
RTK Query's internals have been updated to mark several key actions as batchable. While the enhancer is purely opt-in, benchmarks indicate that it can help speed up UI performance with RTK Query, especially when rendering many components with query hooks. We recommend adding it to your store setup:
Additionally, there's a
prepareAutoBatched
util that can be used to help add theSHOULD_AUTOBATCH
flag to actions, designed for use withcreateSlice
:fetchBaseQuery
Global OptionsfetchBaseQuery
now supports passing theresponseHandler
,validateStatus
, andtimeout
options directly tofetchBaseQuery
itself, in addition to accepting it as part of specific endpoints. If provided, these options will be applied as defaults to all requests for that API, which simplifies using them on many endpoints.Other Changes
Providing
serializeQueryArgs
andforceRefetch
options for an endpoint now works correctly when you pass an object as the cache key argument to a query hook.The
defaultSerializeQueryArgs
util is now exported.The endpoint-specific
serializeQueryArgs
option now allows returning an object or a number instead of just a string. If a string is returned, it will be used as-is for the serialized cache key. If an object or number is returned, that value will be passed todefaultSerializeQueryArgs
. This simplifies the common case of wanting to remove a couple fields from the cache key, without needing to calldefaultSerializeQueryArgs
yourself.Internal tweaks to the RTKQ middleware behavior for detecting cases where the middleware has not been added to the store.
The API docs for the 1.9 preview are fully updated.
What's Changed
responseHandler
andvalidateStatus
configuration by @phryneas in allow for globalresponseHandler
andvalidateStatus
configuration #2823Full Changelog: v1.9.0-beta.0...v1.9.0-rc.0
This discussion was created from the release v1.9.0-rc.0.
Beta Was this translation helpful? Give feedback.
All reactions