A Complete Beginner's Guide to React

By StartxLabs
Date 25-02-21
A Complete Beginner's Guide to React
" "


Have you ever browsed a website that has the most awful user interface to interact with? If yes, what did you think at that moment? "The interface is unpleasant! It should have been developed better!" Correct? But developing an efficient interface using DOM (Document Object Model) is obviously difficult and also makes the interaction slower. However, social media like Facebook and Instagram react faster to our commands, updating the changes within a fraction of a second right? What could be the reason here? To reduce the complexity with the usage of DOM APIs, an open-sourced Javascript library has been introduced known as React (React JS), especially for building user interface components.


React JS was developed by Facebook to provide an efficient and flexible user interface experience. DOM is an interface that represents the XML or HTML documents as a tree-like structure with the nodes representing the parts of the document or an application. When an update is made, it results in an updating it to the DOM, which results in the entire loading of the webpage and makes the user interaction ineffective.



React JS is not a framework. It is a Javascript library that designs views for your application. Using React JS, the changes made to each state of the views can be updated rapidly and it updates only the required components specifically. That is, by using React, updated with the final state is easier and need not manipulate the entire component of the application.


Let's discuss briefly the components available in the React JS.


React components are the basic elements in React that represent each part of the User Interface in the application. They help in making the development process easier. Each component returns a specific JSX code that provides what has to be returned on the screen. The entire UI is split up into various independent parts and those parts are known as the components.  There are two types of components in React. They are:


  • Functional Components: Functional components are Javascript/ ES6 functions that return a react element or JSX and are simpler than the Class components. The functional components may take props as input (if necessary), that provide the properties to a specific function. The function name should always start with a capital letter. In the previous versions, functional components are stateless as they couldn't manage states but in React 16.8, we can use state in functional components. React has introduced us to various types of  Hooks and by using the useState hook, we can manage the states. A functional component can be created using the following syntax.

function Heading(props){
  return <h1> what_has_to_be_rendered </h1>;


Another way of creating a function is by using arrow functions:


const Heading = (props) => {
  return <h1> what_has_to_be_rendered</h1>;


  • Class Components: Class components are stateful components that are extended from ReactUnlike functional components, class components interact with and use the other class components when needed. They use the render( ) function, that returns the required element that has to be rendered. A class component appears like,


class Heading extends React.Component(){
    return <h1>  what_has_to_be_rendered </h1>;


Let's consider a scenario, where you are using Facebook or Instagram. As you see, the number of likes and comments will tremendously grow in an instant. This extensive yet high-speed operation is very challenging when you use DOM to build the interface. For developing UI, React can be used either in web browsers or with Node.js.



The most recent version of React is React 17, which enables React to gradually upgrade itself. It also allows React to integrate with the other applications built using other technologies. The major difference between the React 17 and its previous versions is that React 17 doesn't manage event handlers at the document level, instead, it attaches the handlers to the rendered React tree's root DOM. To be more precise, React 16 calls document.addEventListener() and React 17 will call rootNode.addEventListener(). Some of the other features that React 17 has updated include

  • Eliminates the Event pooling Optimization as it doesn't help in improving the performance
  • onBlur, onFocus events are replaced by focusin and focusout, as it improves React's behavior
  • onClickCapture events can use real browser captures phase listeners now
  • event.stopPropagation() lets you preventing document handler from releasing
  • No need for longer bubbles on the onScroll event to avoid confusion
  • Cleanup functions run asynchronously by using useEffect.
  • It supports the new JSX platform, which eliminates the need of importing React. It also throws an error for returning 'undefined'


What makes React work better?


While creating a web application interface, React creates a Virtual DOM tree representation. Virtual DOM tree is based on JS library and is similar to the DOM tree. Whenever you try updating any changes to the DOM. React uses an algorithm that re-renders the updated DOM nodes. React allows rendering only the components that are modified. So, React actually maintains two DOM trees now. One has the virtual DOM of the previous state and the other is the virtual DOM of the recently modified state. The difference between those trees is calculated and the changes that are made recently will only be added to the original DOM. For calculating the changes between those trees, React uses the methods:  

  1. Re-rendering all the child components if the parent state has changed.
  2. Breadth First Search.
  3. Reconciliation.

It is because of this virtual DOM, react works faster and efficiently.


Advantages of using React


Using ReactJS has numerous advantages such as

  • It lets you use reusable components for making the development process much easier.
  • Loading is much faster, as it updates the changes only to the required DOM elements and not entirely updating in the back-end.
  • It enhances the performance as it uses virtual DOM for updating the changes.
  • Various tools have been provided by the library that makes the development much faster and understandable by the developers.
  • Applications developed using ReactJS are more effective in testing and debugging.


"We transform your idea into reality, reach out to us to discuss it.

Or wanna join our cool team email us at [email protected] or see careers at Startxlabs."

subscribe to startxlabs