Great points, Anthony! An honest assessment of the impracticality of using a third party state management solution with React.

I know this isn't gonna be the next big thing in React state management and frankly I don't want it to be. I do hope that it might open people's eyes to the opportunities outside of React, but I think for as long as React exists, people should just stick to using the state management tools that React itself provides. They're always gonna be the most compatible, most well maintained, and most well-documented.

However, I think it's important that we still discuss the theoretical alternatives, especially when it comes to libraries as foundational as React, on which millions of apps are built.

I can't argue that it's easy to be productive with hooks. Once you understand the magic, they are incredibly powerful and you can do a lot with a little bit of code. But some part of me has always cringed when writing them.

Also something that makes me sad is that whenever React does reach the end of its time, all of the beautiful third-party tooling built around it is going to expire as well because of the tight coupling of state management to the framework. The thought of losing libraries like react-query that have been a godsend makes me sad. If all of that tooling could exist in a framework-agnostic way and were commonly used across all major frameworks, that would be the dream state.

Last thing I'll touch on, is that one of the things that I personally value in a framework, is to be given the tools I need to build a robust app, but not necessarily have the work done for me. I think that by forcing the developer to do the final connecting between all of the puzzle pieces, they develop a really solid mental model of their app. I think React does too many things on behalf of the user to the point that this mental model is damaged.

Software Engineer at Scenery

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store