Redux Toolkit (RTK): Slices, Selectors, and Thunks
On this page
Modern Redux (RTK)
Forget the boilerplate of "Classic" Redux. Redux Toolkit (RTK) is the official, opinionated way to write Redux. It simplifies everything from store setup to immutable state updates using Immer.
1. Slices: The All-in-One Model
A Slice contains your initial state, your reducers, and your actions in a single file. RTK uses **Immer** internally, allowing you to write "Mutating" code (like state.items.push(x)) that is safely converted into immutable updates. No more spreading ...state 5 levels deep!
2. Selectors & Memoization
Don't just useSelector(state => state). Use targeted selectors. Even better, use createSelector for memoization. This ensures that your component only re-renders when the *specific* piece of data it needs has changed.
3. Async Logic with Thunks
RTK comes with createAsyncThunk, which handles the "Pending," "Fulfilled," and "Rejected" states of an API call automatically. This provides a consistent way to handle loading spinners and error messages across your entire app.
4. Interview Mastery
Q: "Why is Redux still relevant in the age of Context and Hooks?"
Architect Answer: "Redux excels in **Large, Distributed Teams**. Its strict structure makes the data flow predictable and easy to trace. Features like 'Redux DevTools' allow you to inspect every state change ever made, 'Time Travel' through user actions, and even hot-reload state during development. Context is a pipe; Redux is a central nervous system with a flight recorder."