

Once set, the state of a component can’t be changed. Unidirectional data binding with the flux architecture.Job #1 of the React team was to fix that problem.

“ Non-determinism = parallel processing + mutable state” - Martin Odersky DOM race conditions were one of the most common bugs in early web applications. You couldn’t make those guarantees with any of the popular front-end frameworks prior to React. It was a complex app within an already complex app, and uncontrolled mutation of the DOM, along with the parallel and asynchronous nature of multi-user I/O presented difficult challenges for the Facebook team.įor instance, how can you predict what is going to be rendered to the screen when anything can grab the DOM and mutate it at any time for any reason, and how can you prove that what got rendered was correct? In the year 2013, Facebook had just spent quite a bit of effort integrating the chat feature: A feature that would be live and available across the app experience, integrating on virtually every page of the site.
