What Is React?

React is a JavaScript framework. React was originally created by engineers at Facebook to solve the challenges involved when developing complex user interfaces with datasets that change over time. This is not a trivial undertaking and must not only be maintainable, but also scalable to work at the scale of Facebook. React was actually born in Facebook’s ads organization, where they had been utilizing a traditional client-side Model-View-Controller approach. Applications such as these normally consist of two-way data binding along with rendering template. React changed the way that these applications were created by making some daring advances in web development. When React was released in 2013, the web development community was both interested and seemingly disgusted by what React was doing.

React challenges conventions that have become the defacto standards for JavaScript framework best practices. React does this by introducing many new paradigms and shifting the status quo of what it takes to create scalable and maintainable JavaScript applications and user interfaces. Along with the shift in front-end development mentality, React comes with a rich set of features that make composing a single-page application or user interface approachable for developers of many skill levels—from those who have just been introduced to JavaScript, to seasoned veterans of the web. You will see these features—such as the virtual DOM, JSX, and Flux concepts—as you read this book and discover how they can be used to create complex user interfaces.

React Native is a new open source library for creating native user interfaces utilizing the same principles as React’s JavaScript library. By creating a Native UI library, React has pushed its value proposition of “learn once, write anywhere.” This paradigm shift applies to being able to utilize the core concepts of React in order to make maintainable interfaces. By now it is possible you are thinking that there is nothing React can’t do when it comes to development. This is not the case, and in order to further understand what React is, you need an understanding of what React is not, which you learn later in Article.