The React library lets us define the entire UI of our app as a tree of JavaScript objects. These JavaScript objects are called React elements. React provides the utilities for creating and manipulating this tree.

    We then leverage a library with platform-specific bindings, e.g. React DOM for the web, to render our tree of React elements on the screen using native UI elements (i.e. DOM elements). Whenever the tree of elements changes, React DOM updates the native UI elements to match.