Created by Jordan Walke, a software engineer at Facebook.
Influenced by XHP, an HTML components framework for PHP.
An open-source JavaScript library for creating user interfaces.
Designed to help developers build large apps where data changes over time. It strives to be simple, declarative and composable.
React embraces one-way data flow where components are automatically re-rendered when the 'props' on a React component are changed.
This removes some of the complexity of two-way data binding.
Reduces boilerplate and can be easier to understand than traditional data binding.
Aims to address challenges encountered in developing single-page applications.
React maintains a virtual DOM of its own.
This allows the library to determine which parts of the DOM have changed by 'diffing' the new version with the stored virtual DOM.
It then uses the result to determine how to update the browser's DOM.
This abstraction creates a simpler programming model and better performance.
Can render on the server using Node, and it can power native apps using React Native.