React Interview Questions


Q#1. What is React?

Ans. React is a front-end JavaScript library developed by Facebook in 2011. It follows the component based approach which helps in building reusable UI components. It is used for developing complex and interactive web and mobile UI. Even though it was open-sourced only in 2015, it has one of the largest communities supporting it.


Q#2. What are the major features of React?

Ans. The major features of React are: It uses VirtualDOM instead RealDOM considering that RealDOM manipulations are expensive. Supports server-side rendering. Follows Unidirectional* data flow or data binding. Uses reusable/composable UI components to develop the view.


Q#3. List some of the major advantages of React.

Ans. Some of the major advantages of React are: It increases the application’s performance It can be conveniently used on the client as well as server side Because of JSX, code’s readability increases React is easy to integrate with other frameworks like Meteor, Angular, etc Using React, writing UI test cases become extremely easy


Q#4. What is JSX?

Ans. JSX is a XML-like syntax extension to ECMAScript (the acronym stands for JavaScript XML). Basically it just provides syntactic sugar for the React.createElement() function, giving us expressiveness of JavaScript along with HTML like template syntax.


Q#5. What are the limitations of React?

Ans. Limitations of React are listed below: React is just a library, not a full-blown framework Its library is very large and takes time to understand It can be little difficult for the novice programmers to understand Coding gets complex as it uses inline templating and JSX


Q#6. How to create components in React?

Ans. There are two possible ways to create a component.

Function Components: This is the simplest way to create a component. Those are pure JavaScript functions that accept props object as first parameter and return React elements:

function Greeting({ message }) {
  return <h1>{`Hello, ${message}`}</h1>?
}
Class Components: You can also use ES6 class to define a component. The above function component can be written as:

class Greeting extends React.Component {
  render() {
    return <h1>{`Hello, ${this.props.message}`}</h1>
  }
}


Q#7. What is JSX?

Ans. 

JSX is a shorthand for JavaScript XML. This is a type of file used by React which utilizes the expressiveness of JavaScript along with HTML like template syntax. This makes the HTML file really easy to understand. This file makes applications robust and boosts its performance. Below is an example of JSX:


render(){
    return(        
          
<div>
<h1> Hello World from Edureka!!</h1>
         </div>
 
    );
}


Q#8. When to use a Class Component over a Function Component?

Ans. If the component needs state or lifecycle methods then use class component otherwise use function component.


Q#9. Why can’t browsers read JSX?

Ans. Browsers can only read JavaScript objects but JSX in not a regular JavaScript object. Thus to enable a browser to read JSX, first, we need to transform JSX file into a JavaScript object using JSX transformers like Babel and then pass it to the browser.


Q#10. What are Pure Components?

Ans. React.PureComponent is exactly the same as React.Component except that it handles the shouldComponentUpdate() method for you. When props or state changes, PureComponent will do a shallow comparison on both props and state. Component on the other hand won't compare current props and state to next out of the box. Thus, the component will re-render by default whenever shouldComponentUpdate is called.