TO

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
1
Weekly
0
Open issues
0
Bundle
~60 kB

Installation

npm install @reduxjs/toolkit

Code 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
  • 0 weekly downloads. Battle tested
  • First-class TypeScript definitions
  • MIT licensed

Considerations

  • Adds roughly ~60 kB to your bundle
  • Needs client-only rendering in SSR frameworks
  • Not supported in React Native
  • 0 open issues on GitHub

FAQs

Alternatives & similar libraries