redux-xstate-poc VS redux-eggs

Compare redux-xstate-poc vs redux-eggs and see what are their differences.

redux-xstate-poc

Manage your Redux side effects with XState. Use 100% of XState's features. (by mattpocock)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
redux-xstate-poc redux-eggs
6 2
89 71
- -
2.6 3.8
over 2 years ago 8 months ago
TypeScript TypeScript
- MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

redux-xstate-poc

Posts with mentions or reviews of redux-xstate-poc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-14.
  • JavaScript State Machines and Statecharts
    8 projects | news.ycombinator.com | 14 May 2023
    Very doable, but not the most ideal syntax, since `createSlice` is focused on "here's an action / thing that happened, here's the reducer that handles that".

    On the flip side, you can also use XState state machines as Redux reducers. A state machine is, after all, a function that takes a current state value + some event, and returns a new state.... exactly the same as a reducer function!

    David and I have been saying for a while that we'd like to have a more official integration between XState and Redux. A while back, Matt Pocock put together an proof of concept for what a `createXStateSlice` might look like [1]. I actually sat down with David a couple weeks ago and we did some further design discussions about the possibility of using the `@xstate/fsm` package (a smaller version of XState's logic) as a starting point, and generating RTK actions based on that. No code yet, but it seems feasible.

    [0] https://dev.to/davidkpiano/redux-is-half-of-a-pattern-1-2-1h...

    [1] https://github.com/mattpocock/redux-xstate-poc

  • The new wave of React state management
    7 projects | /r/javascript | 2 Jul 2022
    23 projects | news.ycombinator.com | 2 Jul 2022
    Fun fact: one of the XState devs did a proof-of-concept showing how to use XState state machines as Redux reducers and integrate the side effects handling as a middleware:

    https://github.com/mattpocock/redux-xstate-poc

    We'd like to work together to turn that into a more official integration sometime soon.

  • Writing React components with State Machines.
    1 project | /r/reactjs | 24 Mar 2022
  • What does a large XState / Robot3 / FSM-based application architecture look like?
    1 project | /r/reactjs | 16 Oct 2021
    One of the XState devs recently posted https://github.com/mattpocock/redux-xstate-poc , an example of how you can integrate XState into a Redux app for use as a Redux slice reducer + side effects middleware
  • @xstate/redux: Official proposal for an XState middleware for Redux
    1 project | /r/reactjs | 20 Aug 2021

redux-eggs

Posts with mentions or reviews of redux-eggs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-07-02.
  • The new wave of React state management
    23 projects | news.ycombinator.com | 2 Jul 2022
    We have docs on code splitting reducers and other Redux logic here:

    - https://redux.js.org/usage/code-splitting

    There have been some different community packages for helping with that process, but some of them seem to have become outdated (only worked with React-Redux v5, etc). I did see a new one at https://github.com/fostyfost/redux-eggs that seemed like it had potential, but I haven't had a chance to try any of them myself.

    I also once saw someone play around with the idea of using React's still-not-technically-final Suspense support to help ensure that a lazy-loaded component that relies on a code-split reducer doesn't actually get rendered until that reducer's state is available. Don't have the link handy atm, but if someone wants it ping me and I can go figure out where that was described.

    Also, the new RTK "listener" middleware was specifically designed to replace almost all saga usages, and you can dynamically add more listeners at runtime via dispatch an `addListener()` action:

    - https://redux-toolkit.js.org/api/createListenerMiddleware

    - https://blog.isquaredsoftware.com/2022/05/presentations-evol...

  • Why using Redux is inefficient for small/mid-sized apps?
    4 projects | /r/reactjs | 3 Apr 2022
    I did see a recent package called https://github.com/fostyfost/redux-eggs which looked like it did the same kind of "add and remove modular chunks of Redux code" use case, but I haven't had time to try it out.

What are some alternatives?

When comparing redux-xstate-poc and redux-eggs you can also consider the following projects:

yieldmachine - Components for State Machines, using Generator Functions

redux-dynamic-modules - Modularize Redux by dynamically loading reducers and middlewares.

devtools - Replay.io DevTools

react-native-redux-toolkit-starter-app - 📱🚀A POWERFUL React Native starter kit to bootstrap the start of your mobile app development

vuex - 🗃️ Centralized State Management for Vue.js.

Dn-FamiTra

redux-essentials-example-app - Example app for the Redux Essentials tutorial

rfcs - RFCs for XState and Stately tools

algo_v - A collection of sorting algorithms, complete with visualizations, designed to help learn and practice algorithms. 📊

redux-easy-mode - A very easy to understand and use set of tools for Redux. Includes action builders, reducer builders, side-effect middleware, and async actions.

redux-templates - Official Redux templates for Vite, Create-React-App, and more