October 03, 2019
React is famous about its steep learning curve. No wonder — starting from the programming model through data manipulation to user interaction introduced changes which are often paradigm shifts.
Want the buzzwords?
Reactive programming, Functional programming, Pure functions, Side effects, State, Hooks, Functional components, Referential equality, Finite state machines, Data driven applications, Memoization, Static type checking — none of these were present in your old framework, perhaps.
Learning React is not like it was learning Ruby on Rails, Yii, or MVC. It’s more like a fresh start with unlearning first, then re-learning everything from information architecture design to event-based user interfaces.
Identify the right leaders.
A surprisingly compact ecosystem around React makes this process enjoyable. There are a handful of opinion leaders who often share their thoughts which are in line.
The list goes:
Once you’ve found the line your learning process will be smooth unless you leave the safe waters. At the edge there is nobody to guide you.
All the buzz now is around the state. It’s React’s cornerstone and it’s yet not solved.
Go with Redux? Forget Redux after hooks? Dive into finite state machines? What about MobX? Many job posts require it — it must be popular and useful.
Apollo started to introduce local state management with GraphQL. What that means for all the other libraries? Will they bundle/push it together with Apollo Client?
RWieruch just published a tutorial for state management with RxJS. Should I read it?
There is a new library React Tracked: Super fast global/shared state with context and hooks. Should I read it? Can I trust the author? Is he in the line?
I went with finite state machines / Xstate. Why?
Its leader is trustworthy. Checked videos, blog posts, chatted on twitter, created a test project, advanced it, found a bug, filed a bug, got a fix for it — and all the time every interaction felt so natural.
Will this choice stand the test of time? I don’t know. But this new piece of knowledge perfectly fits the line. Good UI/UX should be flawless and this tool helps achieve that.
I’m adding David K. Piano to the list.
To React with best practices. Written by @metamn.