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 redux-thunk

Zustand vs redux-thunk

OverviewComparisonAlternatives

Overview

redux-thunk
redux-thunk
Stacks1.2K
Followers185
Votes6
GitHub Stars17.7K
Forks1.0K
Zustand
Zustand
Stacks371
Followers157
Votes34

Zustand vs redux-thunk: What are the differences?

Introduction

In this article, we will explore the key differences between Zustand and redux-thunk. Zustand and redux-thunk are both state management libraries for JavaScript applications, but they have some distinct characteristics that set them apart. Let's dive into the details.

  1. Ease of Use: Zustand is a lightweight state management library that aims to provide a simple and intuitive API for managing application state. It offers a minimalistic approach to state management, making it easy to understand and use. On the other hand, redux-thunk is a middleware for Redux that allows writing asynchronous logic in actions. It requires a more complex setup and understanding of Redux concepts.

  2. Performance: Zustand is designed to be highly performant, thanks to its optimized reactivity engine. It leverages the React hook API, which enables efficient state updates and renders. On the other hand, redux-thunk introduces additional middleware and higher-order functions, which can impact performance in certain scenarios, especially when dealing with a large number of actions or complex asynchronous flows.

  3. Bundle Size: Zustand is known for its small footprint due to its minimalistic design. It weighs only a few kilobytes when gzipped, making it an excellent choice for applications where file size matters. On the other hand, redux-thunk is part of the Redux ecosystem, which adds some overhead to the bundle size. Redux itself is known for having a larger bundle size compared to Zustand.

  4. Middleware Support: Zustand does not natively support middlewares like redux-thunk. However, Zustand provides an extendable API that allows developers to implement custom middleware-like functionality if needed. On the other hand, redux-thunk is specifically designed as a middleware for Redux. It seamlessly integrates with the existing Redux middleware ecosystem and provides a straightforward way to handle asynchronous actions.

  5. Development Experience: Zustand aims to provide a modern, developer-friendly experience by leveraging the power of React hooks. It embraces the functional programming paradigm and encourages a more declarative and concise coding style. On the other hand, redux-thunk follows the traditional Redux pattern, which requires more boilerplate code and can be less intuitive for developers new to Redux.

  6. Community and Ecosystem: Redux has a massive and active community, which translates into a vast ecosystem of third-party libraries, tutorials, and community support. Redux-thunk benefits from this ecosystem, with many plugins and extensions available for various use cases. Zustand, being a relatively newer library, has a smaller community and ecosystem, but it is growing steadily.

In summary, Zustand and redux-thunk offer different approaches to state management. Zustand focuses on simplicity, performance, and a minimalistic design, while redux-thunk leverages the power of Redux middleware for handling asynchronous actions. The choice between the two depends on your specific requirements and preferences.

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

redux-thunk
redux-thunk
Zustand
Zustand

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.

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
17.7K
GitHub Stars
-
GitHub Forks
1.0K
GitHub Forks
-
Stacks
1.2K
Stacks
371
Followers
185
Followers
157
Votes
6
Votes
34
Pros & Cons
Pros
  • 6
    Easy
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 redux-thunk, 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.

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.

reselect

reselect

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

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