Toolkit
@reduxjs/toolkit
The official, opinionated, batteries-included toolset for efficient Redux development
State Management
redux
react
starter
toolkit
reducer
slice
immer
immutable
redux-toolkit
tanstack-intent
Stars
11k
Weekly
20M
Open issues
284
Bundle
~15 kB
Installation
npm install @reduxjs/toolkitCode example
import { configureStore, createSlice } from "@reduxjs/toolkit";
import { Provider, useDispatch, useSelector } from "react-redux";
const counter = createSlice({
name: "counter",
initialState: { value: 0 },
reducers: { inc: (s) => { s.value += 1; } },
});
const store = configureStore({ reducer: { counter: counter.reducer } });
export function Example() {
return (
<Provider store={store}>
<Counter />
</Provider>
);
}
function Counter() {
const value = useSelector((s: { counter: { value: number } }) => s.counter.value);
const dispatch = useDispatch();
return (
<button type="button" onClick={() => dispatch(counter.actions.inc())}>
Count: {value}
</button>
);
}Pros & cons
Pros
- Actively maintained by Mark Erikson
- 20M weekly downloads. Battle tested
- First-class TypeScript definitions
- MIT licensed
Considerations
- Adds roughly ~15 kB to your bundle
- Needs client-only rendering in SSR frameworks
- Not supported in React Native
- 284 open issues on GitHub