v2.10.1
This bugfix release fixes an issue with window access breaking in SSR due to the byte-shaving work in 2.10.
- Fix window SSR breakage by @markerikson in https://github.com/reduxjs/redux-toolkit/pull/5132
Full Changelog: https://github.com/reduxjs/redux-toolkit/compare/v2.10.0...v2.10.1
v10.9.5
This release backports the update of the dependency dagre-d3-es to 7.0.13 for CVE-2025-57347 from v11.12.1.
We've also updated the v10.x branch to support newer versions of DOMPurify, cherry-picked from https://github.com/mermaid-js/mermaid/commit/fe3cffbb673a25b81989aacb06e5d0eda35326db, avoiding CVE-2025-26791.
Full Changelog: https://github.com/mermaid-js/mermaid/compare/v10.9.4...v10.9.5
1.15.8
Popup: 添加onOverlayClick事件以支持内容面板点击触发 @RSS1102 (#3927)CheckboxGroup: 支持readonlyAPI @RylanBot (#3885)Form: @RylanBot (#3885)- 支持
readonlyAPI - 支持
FormRule.pattern的类型为string
- 支持
Select: 修复1.15.7版本中全选功能在分组模式下功能异常的问题 @uyarn (#3941)Form: 修复嵌套FormList无法使用setFields更新表单的问题 @RylanBot (#3930)CheckboxGroup: 修复被设为disabled的选项会被checkAll篡改状态的问题 @RylanBot (#3885)SubMenu: 修复自定义popupProps的visible和onVisibleChange不生效的问题 @RylanBot (#3912)DatePicker: 修复同时开启enableTimePicker与needConfirm={false}时,选择日期后未选时间就关闭弹窗的问题 @RylanBot (#3860)DateRangePicker: 修复同时开启enableTimePicker与needConfirm={false}时,仍需手动确认的问题 @achideal (#3860)Progress: 修复开启theme='plump'时,自定义label被隐藏的问题 @RylanBot (#3931)RadioGroup: @RylanBotTree: @RylanBot
Form: 优化getValidateMessage方法底层的逻辑 @RylanBot (#3930)
v7.3.5
A big thanks to the 11 contributors who made this release possible.
- [Collapse] Add slots and slotProps props (#47168) @sai6855
- [l10n] Add missing Catalan (ca-ES) locale (#47156) @frncesc
- Fix regression on
theme.vars.shapemodule augmentation (#47164) @siriwatknp
- Support Next.js 16 (#47134) @siriwatknp
- [Autocomplete] Update virtualization example to use react-window v2 (#47054) @sai6855
- [autocomplete] Add note about unique key extraction for duplicate labels (#47010) @PossiblyAShrub
- [Snackbar] Fix typo in docs (#47038) @sai6855
- [Transition] Fix horizontal scroll in SimpleFade demo in mobile screens (#47169) @sai6855
- Replace deprecated
inputPropswithslotProps.inputin checkbox demos (#47083) @CODEKRUNCH
- [code-infra] gitignore next-env.d.ts (#47167) @Janpot
- [code-infra] Migrate versions page to getStaticProps (#47151) @Janpot
- [code-infra] Fix breaking change for ci publish (#47147) @brijeshb42
- [code-infra] Remove React import requirement for jsx (#47146) @brijeshb42
- [code-infra] Update vitest usage detection in
@mui/internal-test-utils(#47141) @bernardobelchior - [code-infra] Setup eslint-plugin-compat (#47133) @brijeshb42
- [code-infra] Filter out @mui/joy and @mui/base from search results (#47076) @Janpot
- [code-infra] Fix hotfix instructions (#47015) @Janpot
- [code-infra] Disable pigment regression tests (#47045) @Janpot
- [code-infra] Fix moderate dependabot issue (#46946) @Janpot
- [code-infra] Enable testing-library eslint rules (#47074) @brijeshb42
- [code-infra] Lint json through eslint (#47056) @Janpot
- [code-infra] Support custom npm dist tags during release (#47021) @Janpot
- [code-infra] Remove tsconfig
baseUrl(#47044) @Janpot - [code-infra] Centralize stylelint (#46955) @Janpot
- [code-infra] Remove legacy feedback (#46981) @Janpot
- [code-infra] Remove repo build scripts (#47036) @brijeshb42
- [code-infra] Publish docs from upstream (#47018) @Janpot
- [code-infra] Migrate
lodashtoes-toolkit(#46974) @sukvvon - [docs-infra] Do not escape pipes (
|) inside code blocks (#47139) @ZeeshanTamboli - [docs-infra] Fix broken link targets (#47104) @Janpot
- [docs-infra] Fix broken link for DOMRect docs (#47106) @Janpot
- [docs-infra] Use published netlify cache plugin package (#47071) @brijeshb42
- [examples] Remove Next.js text from React Router example (#47055) @HeinrichFilter
All contributors of this release in alphabetical order: @bernardobelchior, @brijeshb42, @CODEKRUNCH, @frncesc, @HeinrichFilter, @Janpot, @PossiblyAShrub, @sai6855, @siriwatknp, @sukvvon, @ZeeshanTamboli
v1.134.12
Version 1.134.12 - 11/4/25, 2:52 AM
- solid-router: implement navigation transitions (#5691) (76c4f61) by Birk Skyum
- solid-router: cleanup module (#5748) (cbf10db) by Birk Skyum
- apply automated fixes (attempt 2/3) (19b0083) by autofix-ci[bot]
- apply automated fixes (834c077) by autofix-ci[bot]
- (401883c) by Aditya Oberai
- @tanstack/router-core@1.134.12
- @tanstack/solid-router@1.134.12
- @tanstack/react-router@1.134.12
- @tanstack/solid-router-ssr-query@1.134.12
- @tanstack/react-router-ssr-query@1.134.12
- @tanstack/router-ssr-query-core@1.134.12
- @tanstack/zod-adapter@1.134.12
- @tanstack/valibot-adapter@1.134.12
- @tanstack/arktype-adapter@1.134.12
- @tanstack/router-devtools@1.134.12
- @tanstack/solid-router-devtools@1.134.12
- @tanstack/react-router-devtools@1.134.12
- @tanstack/router-devtools-core@1.134.12
- @tanstack/router-generator@1.134.12
- @tanstack/router-cli@1.134.12
- @tanstack/router-plugin@1.134.12
- @tanstack/router-vite-plugin@1.134.12
- @tanstack/solid-start@1.134.12
- @tanstack/solid-start-client@1.134.12
- @tanstack/solid-start-server@1.134.12
- @tanstack/start-client-core@1.134.12
- @tanstack/start-server-core@1.134.12
- @tanstack/start-storage-context@1.134.12
- @tanstack/react-start@1.134.12
- @tanstack/react-start-client@1.134.12
- @tanstack/react-start-server@1.134.12
- @tanstack/start-plugin-core@1.134.12
- @tanstack/start-static-server-functions@1.134.12
v2.10.0
This feature release updates our Immer dep to 10.2 to pick up its performance improvements, has additional byte-shaving and internal performance updates, and fixes a combineSlices type issue.
Redux Toolkit has been built around Immer since the very first prototype in 2018. Use of Immer as the default in createSlice directly eliminated accidental mutations as a class of errors in Redux apps, and drastically simplified writing immutable updates in reducers.
We've had various issues filed over the years asking to make Immer optional, or raising concerns about Immer's perf. Immer is indeed slower than writing immutable updates by hand, but our stance has always been that Immer's DX is absolutely worth whatever modest perf cost it might incur, and that reducers are usually not the bottleneck in Redux apps anyway - it's usually the cost of updating the UI that's more expensive.
However, a year ago an issue was filed with some specific complaints about Immer perf being very slow. We investigated, ran benchmarks, and filed an Immer issue confirming that it had gotten noticeably slower over time. Immer author Michel Weststrate agreed, and said there were some potential tweaks and architectural changes that could be made, but didn't have time to look into them himself.
A couple months ago, we started investigating possible Immer perf improvements ourselves, including profiling various scenarios and comparing implementations of other similar immutable update libraries. After extensive research and development, we were able to file several PRs to improve Immer's perf: a set of smaller tweaks around iteration and caching, a couple much larger architectural changes, and a potential change to copying objects.
Immer 10.2.0 contains the first set of smaller perf improvements, and this RTK release updates our dependency to 10.2 to pick up those changes.
One important behavior note here: Earlier versions of Immer (8, 9, 10.1) added more handling for edge cases like symbol keys in objects. These changes made sense for correctness, but also contributed to the slowdown. Immer 10.2 now includes a new setUseStrictIteration option to allow only copying string keys in objects (using Object.keys() instead of Reflect.ownKeys()), but keeps the option as strict: true for compatibility with its own users. That default will likely change in Immer 11.
For RTK 2.10.0, we specifically import and call setUseStrictIteration(false), under the assumption that standard Redux state usage only involves string keys in plain JS objects! This should provide a ~10% speedup for Immer update operations. Given that expectation, we believe this is a reasonable feature change and only needs a minor version bump.
If by some chance you are using symbol keys in your Redux state, or in other Immer-powered updates in your Redux app, you can easily revert to the previous behavior by calling setUseStrictIteration(true) in your own app code.
Based on discussions with Michel, Immer v11 should come out in the near future with additional architectural changes for better perf, including optional support for faster array methods that would be available as an Immer plugin adding ~2KB bundle size. We will likely not turn that plugin on by default, but recommend that users enable it if they do frequent array ops in reducers.
We're happy to have contributed these perf improvements to Immer, and that they will benefit not just RTK users but all Immer users everywhere!
You can follow the additional discussion and progress updates in the main Immer perf update tracking issue.
We've tweaked some places where we were doing repeated filter().map().map() calls to micro-optimize those loops.
RTKQ tag invalidation was always reading from proxy-wrapped arrays when rewriting provided tags. It now reads from the plain arrays instead, providing a modest speedup.
We previously found that ESBuild wasn't deduplicating imports from the same libraries in separate files bundled together (ie import { useEffect as useEffect2/3/4/ } from 'react'). We've restructured our internals to ensure all external imports are only pulled in once.
We've done some extensive byte-shaving in various places in the codebase. The byte-shaving and import deduplication saves about 0.6K min from the RTKQ core, and 0.2K min from the RTKQ React bundle.
combineSlices now better handles cases where PreloadedState might not match the incoming type, such as persisted values.
- Improve perf for internal map/filter ops by @markerikson in https://github.com/reduxjs/redux-toolkit/pull/5126
- Update Immer dep to 10.2 and disable strict iteration for perf by @markerikson in https://github.com/reduxjs/redux-toolkit/pull/5127
- Deduplicate imports by @markerikson in https://github.com/reduxjs/redux-toolkit/pull/5128
- Byte-shave various chunks of code by @markerikson in https://github.com/reduxjs/redux-toolkit/pull/5129
- fix(combineSlices): Infer PreloadedState properly from provided slice by @EskiMojo14 in https://github.com/reduxjs/redux-toolkit/pull/5125
Full Changelog: https://github.com/reduxjs/redux-toolkit/compare/v2.9.2...v2.10.0
v16.0.2-canary.6
- Update font data: #85708
- Don't invalidate hot reloader excessively during dev server boot: #85732
- [codemod] fix: next-lint-to-eslint-cli did not handle
'next'plugin: #85749
- Update Rspack production test manifest: #85688
- Update Rspack development test manifest: #85689
- [test] Deflake root-optional-revalidate: #85584
- docs: fix generateImageMetadata example to use normal params object: #85658
- Turbopack: Upgrade image crate: #85084
- docs: update multi sitemap argumenmt type: #85701
- [test] Move all files to .ts (6/6): #85641
- Turbopack: add a batch add method to the storage: #84270
- docs: recommend reverse-proxy when self-hosting: #85650
- [test] Deflake prefetching.stale-times: #85733
- [test] Deflake custom cache handler test: #85610
- [test] Allow CLI integration test to be retryable: #85586
- docs: update docs to mention ESLint as default: #85740
- docs(next.config): this docs should remove ".mts" is not supported.: #85716
Huge thanks to @vercel-release-bot, @eps1lon, @marjan-ahmed, @timneutkens, @huozhi, @sokra, @icyJoseph, @unstubbable, @ajstrongdev, @devjiwonchoi, and @zigang93 for helping!