This release fixes a couple issues with the skip/skipToken
options for query hooks, and makes a small perf tweak to serializing query args.
Changelog
Skip Behavior
We made a change in v1.9.0 that tried to make some skip behavior more consistent, including clearing out the cached data. However, we had overlooked that our own docs actually said "skipping a query will keep the cached data", and several users pointed this out as they'd been relying on that behavior.
We've reverted that change. Now, setting {skip: true}
or skipToken
for a query with existing results will keep the data
value (reflecting the last successful query), but currentData
will be undefined (reflecting the current settings).
We also identified and fixed an issue that could cause subscription entries to leak under a specific combination of timing and settings changes.
Query Arg Serialization Perf
RTKQ relies on serializing query arguments to serve as the cache keys, with the default using JSON.stringify()
+ some logic for sorting keys. There was a report that in some apps, large query arg objects could take a while to stringify and this was being done repeatedly. We've added a WeakMap
-based cache for query args to avoid re-serializing existing arg values.
What's Changed
- Revert "clear data on skip" back to its original behavior by @markerikson in #3188
- Use a WeakMap cache for query arg serialization for perf by @markerikson in #3193
Full Changelog: v1.9.2...v1.9.3