StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. Frameworks
  4. State Management Library
  5. Zustand vs reselect

Zustand vs reselect

OverviewComparisonAlternatives

Overview

reselect
reselect
Stacks428
Followers30
Votes0
GitHub Stars19.1K
Forks666
Zustand
Zustand
Stacks371
Followers157
Votes34

Zustand vs reselect: What are the differences?

Zustand vs. Reselect

Zustand and Reselect are two popular state management libraries in the React ecosystem. While both libraries serve the purpose of managing state in a React application, they have some key differences that set them apart. In this discussion, we will explore these differences and highlight the unique features of each library.

  1. Implementation Approach: Zustand is a lightweight state management library that follows a hook-based approach. It allows you to create and manage state using the familiar useState hook. On the other hand, Reselect is a library that focuses on efficient data selection and memoization. It provides a powerful mechanism for creating selectors that efficiently derive data from the application state.

  2. Complexity: Zustand aims to provide a simplified API and focuses on making state management straightforward and intuitive. It offers a minimalistic approach with a small learning curve. On the other hand, Reselect offers more advanced features and concepts like memoization, reselect selectors, and state slices. It requires a deeper understanding of these concepts, making it slightly more complex to work with.

  3. Performance: Zustand provides excellent performance optimizations out of the box. It achieves this by leveraging React's built-in useReducer and useContext hooks, resulting in efficient re-renders and minimal subscriptions. Reselect, on the other hand, excels in performance optimization through memoization. Selectors created with Reselect automatically cache their results, preventing unnecessary recalculations and improving overall performance.

  4. Selector Composition: Zustand uses a traditional approach for composing derived state values. It allows you to manually compute state values based on the current state. Reselect, on the other hand, provides a powerful selector composition mechanism. It allows you to create complex selectors that depend on other selectors, enabling a more modular and reusable approach when deriving state values.

  5. Integration with Redux: Zustand and Reselect have different integration approaches with Redux. Zustand is designed to be a standalone state management solution and does not require Redux. It provides a simpler alternative without the need for Redux boilerplate code. Reselect, on the other hand, is a library that complements Redux by improving its performance with selector memoization. It is commonly used as a plugin within a Redux-based application.

  6. Community and Ecosystem: Zustand is gaining popularity within the React community, but its ecosystem is still relatively smaller compared to Reselect. Reselect has been around for a longer time and has a mature ecosystem with robust community support. It has numerous third-party libraries and extensions available, making it easier to integrate into larger React projects.

In summary, Zustand and Reselect have distinct approaches to state management in React. Zustand offers a lightweight, hook-based solution with great performance, while Reselect focuses on efficient data selection and memoization within the Redux ecosystem. The choice between these libraries depends on the complexity and requirements of your project as well as your familiarity with the respective concepts.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Detailed Comparison

reselect
reselect
Zustand
Zustand

Simple “selector” library for Redux (and others) inspired by getters in NuclearJS, subscriptions in re-frame and this proposal from speedskater.

Small, fast and scaleable bearbones state-management solution. Has a comfy api based on hooks, that isn't boilerplatey or opinionated, but still just enough to be explicit and flux-like.

-
Simpler and un-opinionated; Makes hooks the primary means of consuming state; Doesn't wrap your app into context providers; Can inform components transiently (without causing render)
Statistics
GitHub Stars
19.1K
GitHub Stars
-
GitHub Forks
666
GitHub Forks
-
Stacks
428
Stacks
371
Followers
30
Followers
157
Votes
0
Votes
34
Pros & Cons
No community feedback yet
Pros
  • 10
    Simple API
  • 7
    Unopinionated
  • 5
    Asynchronous action out the box
  • 4
    Supports Redux DevTools
  • 3
    Open source
Cons
  • 2
    Requires function component
Integrations
Redux
Redux
React
React

What are some alternatives to reselect, Zustand?

Redux

Redux

It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. t provides a great experience, such as live code editing combined with a time traveling debugger.

MobX

MobX

MobX is a battle tested library that makes state management simple and scalable by transparently applying functional reactive programming (TFRP). React and MobX together are a powerful combination. React renders the application state by providing mechanisms to translate it into a tree of renderable components. MobX provides the mechanism to store and update the application state that React then uses.

Effector

Effector

It is an effective multi-store state manager for Javascript apps, that allows you to manage data in complex applications.

redux-saga

redux-saga

An alternative side effect model for Redux apps

vuex

vuex

Vuex is a state management pattern + library for Vue.js applications. It serves as a centralized store for all the components in an application, with rules ensuring that the state can only be mutated in a predictable fashion. It also integrates with Vue's official devtools extension to provide advanced features such as zero-config time-travel debugging and state snapshot export / import.

redux-thunk

redux-thunk

Redux Thunk middleware allows you to write action creators that return a function instead of an action. The thunk can be used to delay the dispatch of an action, or to dispatch only if a certain condition is met. The inner function receives the store methods dispatch and getState as parameters.

Statsbot

Statsbot

Statsbot is helping you take control of your raw data, providing an all-in-one analysis tool for engineers and non-tech folks alike.

Unstated

Unstated

State so simple, it goes without saying

digna

digna

Is the game-changing European modern data quality platform that effortlessly uncovers anomalies and errors in your data with Artificial Intelligence.

Redux Observable

Redux Observable

It allows developers to dispatch a function that returns an observable, promise or iterable of action(s). Compose and cancel async actions to create side effects and more.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase