Alternatives to Redux logo

Alternatives to Redux

Cycle.js, MobX, Flux, React, and RxJS are the most popular alternatives and competitors to Redux.
29.9K
22.9K
+ 1
674

What is Redux and what are its top alternatives?

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.
Redux is a tool in the State Management Library category of a tech stack.
Redux is an open source tool with GitHub stars and GitHub forks. Here’s a link to Redux's open source repository on GitHub

Top Alternatives to Redux

  • Cycle.js
    Cycle.js

    A functional and reactive JavaScript framework for predictable code

  • 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. ...

  • Flux
    Flux

    Flux is the application architecture that Facebook uses for building client-side web applications. It complements React's composable view components by utilizing a unidirectional data flow. It's more of a pattern rather than a formal framework, and you can start using Flux immediately without a lot of new code. ...

  • React
    React

    Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project. ...

  • RxJS
    RxJS

    RxJS is a library for reactive programming using Observables, to make it easier to compose asynchronous or callback-based code. This project is a rewrite of Reactive-Extensions/RxJS with better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface. ...

  • Apollo
    Apollo

    Build a universal GraphQL API on top of your existing REST APIs, so you can ship new application features fast without waiting on backend changes. ...

  • 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. ...

Redux alternatives & related posts

Cycle.js logo

Cycle.js

10
23
0
A functional and reactive JavaScript framework for predictable code
10
23
+ 1
0
PROS OF CYCLE.JS
    Be the first to leave a pro
    CONS OF CYCLE.JS
      Be the first to leave a con

      related Cycle.js posts

      MobX logo

      MobX

      730
      512
      114
      Simple, scalable state management
      730
      512
      + 1
      114
      PROS OF MOBX
      • 26
        It's just stupidly simple, yet so magical
      • 18
        Easier and cleaner than Redux
      • 15
        Fast
      • 13
        Automagic updates
      • 13
        React integration
      • 10
        Computed properties
      • 8
        ES6 observers and obversables
      • 7
        Global stores
      • 3
        Flexible architecture the requeriment
      • 1
        Has own router package (mobx-router)
      CONS OF MOBX
      • 1
        Maturity

      related MobX posts

      Dan Robinson

      The front end for Heap begun to grow unwieldy. The original jQuery pieces became difficult to maintain and scale, and a decision was made to introduce Backbone.js, Marionette, and TypeScript. Ultimately this ended up being a “detour” in the search for a scalable and maintainable front-end solution. The system did allow for developers to reuse components efficiently, but adding features was a difficult process, and it eventually became a bottleneck in advancing the product.

      Today, the Heap product consists primarily of a customer-facing dashboard powered by React, MobX, and TypeScript on the front end. We wrote our migration to React and MobX in detail last year here.

      #JavascriptUiLibraries #Libraries #JavascriptMvcFrameworks #TemplatingLanguagesExtensions

      See more

      We started rebuilding our dashboard components using React from AngularJS over 3 years ago and, in order to have predictable client-side state management we introduced Redux.js inside our stack because of the popularity it gained inside the JavaScript community; that said, the number of lines of codes needed to implement even the simplest form was unnecessarily high, from a simple form to a more complex component like our team management page.

      By switching our state management to MobX we removed approximately 40% of our boilerplate code and simplified our front-end development flow, which in the ends allowed us to focus more into product features rather than architectural choices.

      See more
      Flux logo

      Flux

      515
      508
      130
      Application Architecture for Building User Interfaces
      515
      508
      + 1
      130
      PROS OF FLUX
      • 44
        Unidirectional data flow
      • 32
        Architecture
      • 19
        Structure and Data Flow
      • 14
        Not MVC
      • 12
        Open source
      • 6
        Created by facebook
      • 3
        A gestalt shift
      CONS OF FLUX
        Be the first to leave a con

        related Flux posts

        Marcos Iglesias
        Sr. Software Engineer at Eventbrite · | 13 upvotes · 222.5K views

        We are in the middle of a change of the stack on the front end. So we used Backbone.js with Marionette. Then we also created our own implementation of a Flux kind of flow. We call it eb-flux. We have worked with Marionette for a long time. Then at some point we start evolving and end up having a kind of Redux.js-style architecture, but with Marionette.

        But then maybe one and a half years ago, we started moving into React and that's why we created the Eventbrite design system. It's a really nice project that probably could be open sourced. It's a library of components for our React components.

        With the help of that library, we are building our new stack with React and sometimes Redux when it's necessary.

        See more
        React logo

        React

        168.1K
        139K
        4.1K
        A JavaScript library for building user interfaces
        168.1K
        139K
        + 1
        4.1K
        PROS OF REACT
        • 830
          Components
        • 672
          Virtual dom
        • 578
          Performance
        • 507
          Simplicity
        • 442
          Composable
        • 186
          Data flow
        • 166
          Declarative
        • 128
          Isn't an mvc framework
        • 120
          Reactive updates
        • 115
          Explicit app state
        • 50
          JSX
        • 29
          Learn once, write everywhere
        • 22
          Easy to Use
        • 21
          Uni-directional data flow
        • 17
          Works great with Flux Architecture
        • 11
          Great perfomance
        • 10
          Javascript
        • 9
          Built by Facebook
        • 8
          TypeScript support
        • 6
          Speed
        • 6
          Server Side Rendering
        • 5
          Feels like the 90s
        • 5
          Excellent Documentation
        • 5
          Props
        • 5
          Functional
        • 5
          Easy as Lego
        • 5
          Closer to standard JavaScript and HTML than others
        • 5
          Cross-platform
        • 5
          Easy to start
        • 5
          Hooks
        • 5
          Awesome
        • 5
          Scalable
        • 4
          Super easy
        • 4
          Allows creating single page applications
        • 4
          Server side views
        • 4
          Sdfsdfsdf
        • 4
          Start simple
        • 4
          Strong Community
        • 4
          Fancy third party tools
        • 4
          Scales super well
        • 3
          Has arrow functions
        • 3
          Beautiful and Neat Component Management
        • 3
          Just the View of MVC
        • 3
          Simple, easy to reason about and makes you productive
        • 3
          Fast evolving
        • 3
          SSR
        • 3
          Great migration pathway for older systems
        • 3
          Rich ecosystem
        • 3
          Simple
        • 3
          Has functional components
        • 3
          Every decision architecture wise makes sense
        • 3
          Very gentle learning curve
        • 2
          Split your UI into components with one true state
        • 2
          Recharts
        • 2
          Permissively-licensed
        • 2
          Fragments
        • 2
          Sharable
        • 2
          Image upload
        • 2
          HTML-like
        • 1
          React hooks
        • 1
          Datatables
        CONS OF REACT
        • 40
          Requires discipline to keep architecture organized
        • 29
          No predefined way to structure your app
        • 28
          Need to be familiar with lots of third party packages
        • 13
          JSX
        • 10
          Not enterprise friendly
        • 6
          One-way binding only
        • 3
          State consistency with backend neglected
        • 3
          Bad Documentation
        • 2
          Error boundary is needed
        • 2
          Paradigms change too fast

        related React posts

        Vaibhav Taunk
        Team Lead at Technovert · | 31 upvotes · 3.6M views

        I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.

        See more
        Adebayo Akinlaja
        Engineering Manager at Andela · | 30 upvotes · 3.3M views

        I picked up an idea to develop and it was no brainer I had to go with React for the frontend. I was faced with challenges when it came to what component framework to use. I had worked extensively with Material-UI but I needed something different that would offer me wider range of well customized components (I became pretty slow at styling). I brought in Evergreen after several sampling and reads online but again, after several prototype development against Evergreen—since I was using TypeScript and I had to import custom Type, it felt exhaustive. After I validated Evergreen with the designs of the idea I was developing, I also noticed I might have to do a lot of styling. I later stumbled on Material Kit, the one specifically made for React . It was promising with beautifully crafted components, most of which fits into the designs pages I had on ground.

        A major problem of Material Kit for me is it isn't written in TypeScript and there isn't any plans to support its TypeScript version. I rolled up my sleeve and started converting their components to TypeScript and if you'll ask me, I am still on it.

        In summary, I used the Create React App with TypeScript support and I am spending some time converting Material Kit to TypeScript before I start developing against it. All of these components are going to be hosted on Bit.

        If you feel I am crazy or I have gotten something wrong, I'll be willing to listen to your opinion. Also, if you want to have a share of whatever TypeScript version of Material Kit I end up coming up with, let me know.

        See more
        RxJS logo

        RxJS

        2K
        624
        21
        The Reactive Extensions for JavaScript
        2K
        624
        + 1
        21
        PROS OF RXJS
        • 6
          Easier async data chaining and combining
        • 3
          Steep learning curve, but offers predictable operations
        • 2
          Observable subjects
        • 2
          Ability to build your own stream
        • 2
          Works great with any state management implementation
        • 2
          Easier testing
        • 1
          Lot of build-in operators
        • 1
          Simplifies state management
        • 1
          Great for push based architecture
        • 1
          Documentation
        CONS OF RXJS
        • 3
          Steep learning curve

        related RxJS posts

        Apollo logo

        Apollo

        2.4K
        1.8K
        25
        GraphQL server for Express, Connect, Hapi, Koa and more
        2.4K
        1.8K
        + 1
        25
        PROS OF APOLLO
        • 12
          From the creators of Meteor
        • 8
          Great documentation
        • 3
          Open source
        • 2
          Real time if use subscription
        CONS OF APOLLO
        • 1
          File upload is not supported
        • 1
          Increase in complexity of implementing (subscription)

        related Apollo posts

        Nick Rockwell
        SVP, Engineering at Fastly · | 46 upvotes · 3.2M views

        When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

        So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

        React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

        Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

        See more
        Adam Neary

        At Airbnb we use GraphQL Unions for a "Backend-Driven UI." We have built a system where a very dynamic page is constructed based on a query that will return an array of some set of possible “sections.” These sections are responsive and define the UI completely.

        The central file that manages this would be a generated file. Since the list of possible sections is quite large (~50 sections today for Search), it also presumes we have a sane mechanism for lazy-loading components with server rendering, which is a topic for another post. Suffice it to say, we do not need to package all possible sections in a massive bundle to account for everything up front.

        Each section component defines its own query fragment, colocated with the section’s component code. This is the general idea of Backend-Driven UI at Airbnb. It’s used in a number of places, including Search, Trip Planner, Host tools, and various landing pages. We use this as our starting point, and then in the demo show how to (1) make and update to an existing section, and (2) add a new section.

        While building your product, you want to be able to explore your schema, discovering field names and testing out potential queries on live development data. We achieve that today with GraphQL Playground, the work of our friends at #Prisma. The tools come standard with Apollo Server.

        #BackendDrivenUI

        See more
        vuex logo

        vuex

        1.4K
        921
        7
        Centralized State Management for Vue.js.
        1.4K
        921
        + 1
        7
        PROS OF VUEX
        • 2
          Debugging
        • 2
          Zero-config time-travel
        • 2
          Centralized State Management
        • 1
          Easy to setup
        CONS OF VUEX
          Be the first to leave a con

          related vuex posts

          Simon Reymann
          Senior Fullstack Developer at QUANTUSflow Software GmbH · | 23 upvotes · 4.7M views

          Our whole Vue.js frontend stack (incl. SSR) consists of the following tools:

          • Nuxt.js consisting of Vue CLI, Vue Router, vuex, Webpack and Sass (Bundler for HTML5, CSS 3), Babel (Transpiler for JavaScript),
          • Vue Styleguidist as our style guide and pool of developed Vue.js components
          • Vuetify as Material Component Framework (for fast app development)
          • TypeScript as programming language
          • Apollo / GraphQL (incl. GraphiQL) for data access layer (https://apollo.vuejs.org/)
          • ESLint, TSLint and Prettier for coding style and code analyzes
          • Jest as testing framework
          • Google Fonts and Font Awesome for typography and icon toolkit
          • NativeScript-Vue for mobile development

          The main reason we have chosen Vue.js over React and AngularJS is related to the following artifacts:

          • Empowered HTML. Vue.js has many similar approaches with Angular. This helps to optimize HTML blocks handling with the use of different components.
          • Detailed documentation. Vue.js has very good documentation which can fasten learning curve for developers.
          • Adaptability. It provides a rapid switching period from other frameworks. It has similarities with Angular and React in terms of design and architecture.
          • Awesome integration. Vue.js can be used for both building single-page applications and more difficult web interfaces of apps. Smaller interactive parts can be easily integrated into the existing infrastructure with no negative effect on the entire system.
          • Large scaling. Vue.js can help to develop pretty large reusable templates.
          • Tiny size. Vue.js weights around 20KB keeping its speed and flexibility. It allows reaching much better performance in comparison to other frameworks.
          See more

          Vue.js vuex Vue Router Quasar Framework Electron Node.js npm Yarn Git GitHub Netlify My tech stack that helps me develop quickly and efficiently. Wouldn't want it any other way.

          See more
          redux-thunk logo

          redux-thunk

          716
          183
          6
          Thunk middleware for Redux
          716
          183
          + 1
          6
          PROS OF REDUX-THUNK
          • 6
            Easy
          CONS OF REDUX-THUNK
            Be the first to leave a con

            related redux-thunk posts

            Choosing redux-saga for my async Redux.js middleware, for a React application, instead of the typical redux-thunk .

            Redux-saga is much easier to test than Redux-thunk - it requires no module mocking at all. Converting from redux-thunk to redux-saga is easy enough, as you are only refactoring the action creators - not your redux store or your react components. I've linked a github repo that shows the same solution with both, including Jest tests.

            See more

            For async requests in React I use redux-saga , to my opinion it is the most organized framework for async requests, it is clearer then redux-thunk and conforms to the style of Redux.js which results in a more structured project, especially in large web applications. #redux-saga

            See more