Spring 2020 React State Management MVPs:
Hooks
Context
xState
react-query
Recoil*
*Recoil solves pesky perf challenges with orthogonal (
) state that should be understood before wielding
Hooks
Context
xState
react-query
Recoil*
*Recoil solves pesky perf challenges with orthogonal (

If you haven’t had the chance, I highly recommend @mcc_abe’s excellent Recoil talk from React Europe if you’re curious about the problems it solves and wtf orthogonal state is 
It’s like the toothpick of the React State Management Swiss Army Knife.

It’s like the toothpick of the React State Management Swiss Army Knife.
react-query is a staple and handles managing remote state fetching data.
GraphQL is another option for this sort of thing but is more “viral” in your app. I’m personally less enthusiastic about that approach but understand why people love it.

xState is “lodash level essential” for me.
It’s worth spending a lot of time with to fully internalize the benefits. Timeless shit you’ll use well beyond React (and JS).
Do not sleep on xState. https://egghead.io/courses/introduction-to-state-machines-using-xstate
It’s worth spending a lot of time with to fully internalize the benefits. Timeless shit you’ll use well beyond React (and JS).

React’s Context is practical and built in to React. 
It needs to be understood and used with intention. It can cause serious performance issues if used naively or as a catch all solution
It’s great for libraries (even your internal ones)
Essential. https://joelhooks.com/react-context

It needs to be understood and used with intention. It can cause serious performance issues if used naively or as a catch all solution
It’s great for libraries (even your internal ones)

Last but not least:

React Hooks 

and
Hooks drive your components.
Flexible and often reusable.
Hooks are just React.
Everything in this list is using Hooks.
You’ll use Hooks the most.
Critical knowledge!! https://egghead.io/courses/simplify-react-apps-with-react-hooks












There’s a ton of other solutions and alternatives
I avoid anything that makes me change from “This is a React App” to “This is an X app”
Most of the tools in this list have alternatives and incumbent solutions to explore
This list is just what I’d use as of today!
I avoid anything that makes me change from “This is a React App” to “This is an X app”
Most of the tools in this list have alternatives and incumbent solutions to explore

I’ve been interviewing maintainers of all these libraries, reading, watching talks, taking notes, building examples, and applying my couple decades of experience building UIs to this list.
Still researching and gathering facts to translate all of this into a cohesive curriculum!
Still researching and gathering facts to translate all of this into a cohesive curriculum!