https://www.smashingmagazine.com/wp-content/uploads/2014/07/02-sandwich-opt.png
Building interfaces with a browser
When the web began user interfaces were static and were completely determined by HTML. HTML gives us a great string based method to represent our interfaces. Browsers parse HTML returned by a server and build a web page.
Javascript was introduced to allow programmers to be able to update a web page (document) and make it interactive. We are given a document object we could use to make updates to the webpage.
-- gif example updating the h1's color with the dom ---
To make updates we have to issue commands with the document object and we lost the ability to represent the UI we wanted, which made development complex.
Imagine you are building an app which
React allows us to declare the interfaces we want based on the data our application has rather than workout all of the commands we need to update the interface.
If we take a step back from development
Credit Steven Lusher at the end https://www.youtube.com/watch?v=rI0GQc__0SM