hard to automate testing • Lots of state • by simplifying the markup, DOM manipulation and data flow, React tried to make things more predictable by reducing complexity.
you’ll love React • Mutating the DOM is the most expensive operation • Batches mutation into Virtual DOM • React maintain a virtual representation of the DOM in memory so it can only mutate the parts of the DOM that need to be updated via a Diff algorithm
flow up, Data flows down • reactive programming is a programming paradigm oriented around data flows and the propagation of change. This means that it should be possible to express static or dynamic data flows with ease in the programming languages used, and that the underlying execution model will automatically propagate changes through the data flow. • No databinding like in AngularJS • render method is just called everytime the data changes
• Props are immutable: Components cannot change their props but are responsible for putting together the props of their child components • State starts with default value but can be mutated most likely from a user event • State are internals to components and “private”