Really, all of this can be pared down to: reduce mutable state. That's what React does, and it's why code written in functional languages like Haskell tend to be much easier to reason about.
Basically, the fewer things you need to know about in a given context, the less likely you are too mess it up.
Basically, the fewer things you need to know about in a given context, the less likely you are too mess it up.