• Sumit Negi

How does React work?

Brought to existence by Jordan Walke and maintained by Facebook, React is the most widely used front-end JavaScript library in the web development domain. Some of the examples of commonly used JavaScript libraries are TensorFlow, Angular, Node etc. React takes a declarative approach to application development that makes it simple to reason about the program while simultaneously aiming for efficiency and flexibility. It is a component-based, open-source front-end library that is exclusively responsible for the application's view layer. It creates basic views for each state in the project, and when the data changes, React updates and renders the appropriate component quickly. The declarative approach simplifies debugging and makes the code more predictable.

Let’s have a look at an Instagram page built entirely with React to better understand how it works.

React splits the user interface into several components, as seen in the picture, making the code easier to debug. Each component has its attribute and function.


Fundamentals of React

  1. Components: Components are the fundamental building elements of every React application, and most apps include several components. A component is essentially a user interface element. React divides the user interface into distinct, reusable components that may be handled independently. It uses 2 types of components: · Functional Components : These components are also known as stateless components because they have no state of their own. As props, they may extract data from other components (properties). · Class Components : These components have a distinct render function for returning JSX to the screen and may keep and control their state. Because they can have a state, they are sometimes termed as stateful components.

  2. State: The state object is a built-in React object that stores information or data about the component. A component's state can change over time, and when it happens, the component must be re-rendered. The component's state may change as a result of user action or system-generated events, and these changes have an impact on the behavior of the component.

  3. Properties (Props): Properties are abbreviated as props. It's a built-in React object that saves the value of a tag's attributes and functions similarly to HTML attributes. It allows you to send data from one component to another in the same way as arguments are passed in a function.

Features of React

  1. JSX JavaScript Syntax Extension- JSX stands for JavaScript XMLJSX which is used by React to specify how the user interface should look. In React, JSX simplifies the process of writing and adding HTML. HTML structures can be written in the same file as JavaScript code. This avoids the need for complicated JavaScript DOM structures, making the code easier to comprehend and debug.

  2. Virtual DOM - Virtual DOM, which is a lightweight replica of the actual DOM (a virtual representation of the DOM), is used by React. In React Virtual DOM, there is an object for every object that exists in the actual DOM. It's identical, except it can’t modify the document's layout directly. Manipulation of the DOM is slow, but manipulation of the Virtual DOM is quick since no graphics are rendered on the screen. As a result, if the state of our application changes, the virtual DOM is updated first, rather than the real DOM.

  3. One-Way Data Binding - The one-way data flow is one of the most compelling reasons to choose React for the next projects. The data flow in React is unidirectional. As a result, developers are unable to change any component directly. To make modifications to the components, they must use the callback function. Flux, a JavaScript app architecture, is used by React to govern data flow from a single point. React developers may get more control over their online or mobile applications by using a unidirectional data flow. This increases the application's flexibility while also increasing its efficiency.

  4. React Native - React Native is a React renderer that is unique to the platform. Instead of using web components, React Native employs native components. React Native is a tool that transforms React code to make it compatible with Android and iOS. Furthermore, it gives users access to these platforms' inherent functionality.

  5. Declarative UI - React is the best for creating engaging and interactive user interfaces for mobile and web applications. In an event of data modification, React adequately renders and updates just the right components. It creates a basic view for each application state. This feature improves the readability of the code and makes debugging easier.

  6. Component-Based Architecture - React is built on a component-based architecture. In other words, the user interface of a React-based mobile or web application is split into several components. Each component follows its logic. Instead of utilizing templates, the logic is written in JavaScript. This allows React developers to transfer data across the application without having to worry about the DOM being affected. The components of React play a significant role in shaping how apps interact and look.

Key Benefits of React

  • Easy Building of Dynamic Applications: React makes it easier to create dynamic web applications by requiring less coding and providing more functionality, as opposed to JavaScript, which can quickly become complicated.

  • Improved Performance: React leverages Virtual DOM, which speeds up the development of web applications. Virtual DOM checks the components' prior states and updates only the items in the Real DOM that have changed, rather than updating all of the components again like standard web applications do.

  • Reusable Components: Components are the basic building elements of every React application, and a single app includes a number of them. These components have their own logic and controls, and they can be reused across the application, reducing the development time significantly.

  • Unidirectional Data Flow: Data flow is one-way in React. As a result, developers frequently nest child components within parent components when developing a React app. Debugging faults and detecting where a problem emerges in an application at any given time becomes easy because data flows in a single path.

  • Easy To Learn: React is easy to learn since it integrates basic HTML and JavaScript fundamentals with a few useful enhancements. In fact, an experienced JavaScript developer may pick up React development in a matter of days or week.

  • Creating Both Web and Mobile Applications: We already know that React is used to create online applications, but that's not the only thing it can do. React Native, derived from React, is a popular framework for building mobile apps. Thus, React can be used to create both web and mobile applications.

  • Rich Toolset: React has a robust ecosystem that includes tools like Flux and Redux. On the backend, it also uses Nodejs. The focus of Node.js development trends in 2020 will be on improving the performance of your application. In React, Facebook has provided React developer tools as well as Chrome developer tools. Developers may use these tools to find the child and parent components, inspect component hierarchies, and much more. The correct knowledge of React aids a person in the process of Source Code Review as well as many famous applications use React only.

Famous Applications Using React

  • Facebook

  • Instagram

  • Netflix

  • New York Times

  • WhatsApp

  • Discovery VR

  • Myntra

  • Discord

  • Airbnb

  • Khan Academy

Alternatives To React

Below are the top alternatives to React Technology:

  • Inferno

  • Preact

  • Backbone JS

  • Aurelia

  • Ember JS

  • Svelte

  • Riot JS

  • Mithril

  • Vue JS

  • Angular

References

  1. https://www.geeksforgeeks.org/react-js-introduction-working/

  2. https://www.simplilearn.com/tutorials/reactjs-tutorial/what-is-reactjs

  3. https://2019.stateofjs.com/front-end-frameworks/

  4. https://www.thirdrocktechkno.com/blog/why-choose-reactjs-for-your-next-project-features-and-benefits/

  5. https://dzone.com/articles/10-famous-apps-using-reactjs-nowadays