redux-xstate-poc
hookstate
Our great sponsors
redux-xstate-poc | hookstate | |
---|---|---|
6 | 16 | |
89 | 1,633 | |
- | - | |
2.6 | 4.8 | |
over 2 years ago | 5 months ago | |
TypeScript | TypeScript | |
- | MIT License |
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
-
JavaScript State Machines and Statecharts
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
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.
-
What does a large XState / Robot3 / FSM-based application architecture look like?
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
hookstate
-
A Comprehensive Guide to React State Management
Hookstate
-
ReactJS Good Practices
Avoid using complex state structures to make it easier to manage and debug. There are multiple libraries to help manage complex state management such as Redux, Hookstate, etc.
-
What is React State Management?
Link: https://hookstate.js.org/
- 2022: Best State management libraries in React JS
-
The new wave of React state management
As you stumble on this post and article, do check out one library not mentioned in this list: hookstate. I'm a big fan, the API is very simple and it offers lots of extendability options.
-
As a beginner which is better Redux or useContext() API?
Why don't you try out hook state
-
Redattolo, un gioco per ████████ in React (Next.js)
Lo stack tecnologico è abbastanza standard per il 2022: il core è Next.js (quindi React, 18), di store managemente se ne occupa Hookstate e per un po' di collante in più c'è l'event emitter / pubsub Mitt.
-
React state management libraries in 2022
I have been using Hookstate, curiously aanbidt never mentioned in lists like this.
-
What's best practice for managing state without Redux?
I've never understood why Hookstate (https://hookstate.js.org/) doesn't get more love. It's super-simple (no boilerplate), modern (hook-based), performant (works great for all size apps) and even works outside of components beautifully. It's somewhat similar to context, but more robust and feature-rich (because it's a true state management solution, which context really isn't meant to be). It's basically the only way I've done state in React for a couple of years now and I wouldn't trade it for the world.
-
Noob question, Nextjs vs CRA?
If your data requirements aren't particularly mutating / don't mutate regularly then the newer context api would be your friend it essentially variable that is scoped to your react tree which components can subscribe to changes of, but it is important to know that: unfortunately the current useContext hook (and by extension the rest of the context api) doesn't have any means of specifically "choosing" / "selecting" a part of that context state which is where it falls behind redux etc... - even though they technically operate very very similarly - both redux and context api make use of "subscriptions" to track state updates, just that the context api was designed as a means of "dependency injection" whereas redux was designed for managing state across an entire application. Passing data through props is practically the same, as before the hooks api - avoid prop drilling etc... if you're simply looking at avoiding prop-drilling and just passing some stateful value to another component thats deeply nested then context is your friend - as for redux, I personally am further inclined to hookstate as I think their api is really strong.
What are some alternatives?
yieldmachine - Components for State Machines, using Generator Functions
zustand - 🐻 Bear necessities for state management in React
devtools - Replay.io DevTools
jotai - 👻 Primitive and flexible state management for React
vuex - 🗃️ Centralized State Management for Vue.js.
redux-toolkit - The official, opinionated, batteries-included toolset for efficient Redux development
Dn-FamiTra
react-hook-form - 📋 React Hooks for form state management and validation (Web + React Native)
rfcs - RFCs for XState and Stately tools
unstated-next - 200 bytes to never think about React state management libraries ever again
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.
particule - Fine-grained atomic React state management library