You may have heard of JS frontend frameworks like ReactJS or AngularJS, and may have wondered where they fit in. What are they, and why do we need them?
Think how GMail on the web works — you load the page once, and whenever you go to a message, it loads up instantly by fetching the message data in the background using XHRs — it's a single page app! Frontend frameworks like ReactJS or Angular were created to allow developers to create large web applications that use data which can change over time, without reloading the page.
React's main goal is to be fast, simple and scalable. React processes only user interfaces in applications. This corresponds to View in the Model-View-Controller (MVC) framework. While there are many frontend frameworks out there, React has emerged as a clear winner over the past couple of years, and I highly recommend you get started with it in the next tutorial.
If you want to see the same Todo app implemented in various frameworks, check out TodoMVC — it's good in an instructional sense, and was created few years ago in pre-React era when choosing one framework over another used to be a real question?