ReactStateMuseum
rematch
Our great sponsors
ReactStateMuseum | rematch | |
---|---|---|
4 | 10 | |
1,551 | 8,460 | |
- | 0.1% | |
0.0 | 2.5 | |
about 1 year ago | 7 months ago | |
JavaScript | TypeScript | |
MIT License | 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.
ReactStateMuseum
-
Best place to find a whole list of react native libraries?
Also, there's this for state management: https://github.com/GantMan/ReactStateMuseum
- React State Museum - Examples to help portray the how, why, which, pros, and cons of various state management systems in the React ecosystem
-
My current views of state management in React
React development has always had a bit of a choose your own adventure experience. By that I mean there are a LOT of choices to make in any react app. Other frameworks are much more prescriptive in how you build applications. You won't get very far down your adventure before you must make some choices in how you handle data and state within your application. React components can have state using setState in a class component or useState in a function component. That along with context is really all React gives you out of the box. Over the years there have been countless state management solutions that have risen and fallen in popularity. Have a look at React State Museum to see dozens of the most popular approaches over the years. There was a time where it looked like Redux was going to be the clear winner and for maybe a couple of years it did seem like every enterprise react app was built with redux. It's sort of fallen out of favor in recent years although it is still a solid pattern. Over the years my preferences have changed as the options have expanded. Back in the redux hay day I was all in on global state management but these days I do not find myself reaching for a global state management solution. I'll try to break down my preferences for data/state management. So pretty much every app out there talks to some sort of API to query/mutate data on the server. I prefer to synchronize my app with the serve using React Query or Apollo Client. I've been working mostly with GraphQL APIs in recent years so I've typically found myself using Apollo Client. Apollo client has a memory cache that your app can use to synchronize the UI with the server. I only recently learned about React-Query which has a very similar API as Apollo Client with the useQuery hook, but can be used with anything that returns a promise like the Fetch API for example. React Query is useful for synchronizing your app with server data regardless of if it is GraphQL or REST, or something else. I find that once your app data is synchronized with the server using one of these approaches, then there is not really much left that needs to go into global state. It is worth noting that Apollo Client does allow you to add some local state to the cache, but I’ve found it to be a little heavy handed for my tastes. Most apps you will want some state available globally for example you might want to track dark mode settings, or if a particular modal is open and things of this nature. In these cases I find useState or useReducer with React Context is sufficient. I tend to prefer to keep my state closer to where it is relevant. I do have a fascination with Finite State Machines - and XState is awesome for state machines in your app. I do like to use state machines at the component level, for complex operations or to orchestrate some nuanced sequence or application flow.
rematch
-
What is React State Management?
Link: https://rematchjs.org/
-
Learning Redux as a beginner and where to start
I use Rematch. It’s built on top of redux but without all the ridiculous boiler plate. I looked into Redux Toolkit but found it still requiring too much unneeded code.
-
You don’t need a state management library for React. Use useState + Context
Rematch
-
Which state management to use?
Rematch is a nice wrapper on redux. I’d also recommend recoil, not sure if they’re stable yet but I’ve used it in production without any issues. Depends on the complexity of your app, may be overkill using these libraries.
-
Lets vote on React State Management
Rematch - this is what I used last time after careful evaluation.
- Redux Toolkit is Awesome
-
What's your favorite state manager?
I’ve always found Redux too verbose and cumbersome. Luckily I found Rematch. It is Redux best practices without the boilerplate
-
HOCs are slowing down my app
I'm working on a Grid component which uses react window to render the cells, Each cell uses 5 HOCs where they each subscribe to the store(I use rematch) with connect and some of the HOCs have selectors where they compute some data with a relatively expensive function. I use lodash compose to merge all the HOCs and use it in the Cell component.
-
Rematch.js v2 released
Rematch has been created a few years ago by Shawn McKay and Blair Bodnar, a pair of canadian programmers. It's a tiny but super powerful wrapper around Redux that reduces tons of boilerplate that Redux needs to operate.
-
Options for offline + online database
Checkout Rematch as a redux implementation. It is build on top of redux, but removes all the horrible boilerplate and keeps the good parts.
What are some alternatives?
react-singleton-hook - Create singleton hook from regular react hook
Recoil - Recoil is an experimental state management library for React apps. It provides several capabilities that are difficult to achieve with React alone, while being compatible with the newest features of React.
easy-peasy - Vegetarian friendly state for React
next-redux-wrapper - Redux wrapper for Next.js
mozaik - 🔮 State manager for write good code. Best from redux, mobx and mobx-state-tree
zustand - 🐻 Bear necessities for state management in React
reactant - A framework for building React applications
react-redux - Official React bindings for Redux [Moved to: https://github.com/reduxjs/react-redux]
react-boilerplate - :fire: A highly scalable, offline-first foundation with the best developer experience and a focus on performance and best practices.
pinia-undo - 🍍 Undo/Redo plugin for pinia.
shared-service - a Javascript library for building multiple tabs app with SharedWorker
react-native-segmented-control - 🎉 React Native Segmented Control 🎮 for both iOS, Android and Web