JS Built-ins
redux-toolkitcreateSelectorintermediate

createSelector (Memoized)

πŸ“– Usage Example
const { createSelector } = ReduxToolkit
const selectItems = state => state.cart.items
const selectCount = createSelector(selectItems, items => items.length)
selectCount(store.getState()) // β†’ 0

createSelector memoizes derived state β€” the result function only re-runs when its input selectors return different values.

createSelector

createSelector from RTK (re-exported from Reselect) creates memoized selectors. If the inputs haven't changed, it returns the cached result instead of recomputing.

Challenge: Create a selectCount selector using createSelector that computes items.length from the cart slice.

selectCount(store.getState()) // β†’ 0
// after addItem dispatch:
selectCount(store.getState()) // β†’ 1
πŸ’‘ Hints (3)
  • β€’ `createSelector(inputSelector, resultFn)` memoizes based on the input selector's output.
  • β€’ The result function receives the output of each input selector as its arguments.
  • β€’ When the input (items array reference) doesn't change, selectCount returns the cached count.