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
Uh oh!
There was an error while loading. Please reload this page.
-
This release candidate includes a new "auto-batching" store enhancer, support for passing some global options to
fetchBaseQuery, a fix forforceRefetchbehavior, 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] = trueflag, 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
prepareAutoBatchedutil that can be used to help add theSHOULD_AUTOBATCHflag to actions, designed for use withcreateSlice:fetchBaseQueryGlobal OptionsfetchBaseQuerynow supports passing theresponseHandler,validateStatus, andtimeoutoptions directly tofetchBaseQueryitself, 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
serializeQueryArgsandforceRefetchoptions for an endpoint now works correctly when you pass an object as the cache key argument to a query hook.The
defaultSerializeQueryArgsutil is now exported.The endpoint-specific
serializeQueryArgsoption 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 calldefaultSerializeQueryArgsyourself.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
responseHandlerandvalidateStatusconfiguration by @phryneas in allow for globalresponseHandlerandvalidateStatusconfiguration #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