15 React Interview Questions with Solutions

React’s popularity shows no sign of waning, with the demand for developers still outstripping the supply in many cities around the world. For less-experienced developers (or those who’ve been out of…


This content originally appeared on SitePoint and was authored by Nilson Jacques

15 React Interview Questions with Solutions

React’s popularity shows no sign of waning, with the demand for developers still outstripping the supply in many cities around the world. For less-experienced developers (or those who’ve been out of the job market for a while), demonstrating your knowledge at the interview stage can be daunting.

In this article, we’ll look at fifteen questions covering a range of knowledge that’s central to understanding and working effectively with React. For each question, I’ll summarize the answer and give links to additional resources where you can find out more.

1. What’s the virtual DOM?

Answer

The virtual DOM is an in-memory representation of the actual HTML elements that make up your application’s UI. When a component is re-rendered, the virtual DOM compares the changes to its model of the DOM in order to create a list of updates to be applied. The main advantage is that it’s highly efficient, only making the minimum necessary changes to the actual DOM, rather than having to re-render large chunks.

Further reading

2. What’s JSX?

Answer

JSX is an extension to JavaScript syntax that allows for writing code that looks like HTML. It compiles down to regular JavaScript function calls, providing a nicer way to create the markup for your components.

Take this JSX:

<div className="sidebar" />

It translates to the following JavaScript:

React.createElement(
  'div',
  {className: 'sidebar'}
)

Further reading

3. What’s the difference between a class component and a functional one?

Answer

Prior to React 16.8 (the introduction of hooks), class-based components were used to create components that needed to maintain internal state, or utilize lifecycle methods (i.e. componentDidMount and shouldComponentUpdate). A class-based component is an ES6 class that extends React’s Component class and, at minimum, implements a render() method.

Class component:

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

Functional components are stateless (again, < React 16.8) and return the output to be rendered. They are preferred for rendering UI that only depends on props, as they’re simpler and more performant than class-based components.

Functional component:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

Note: the introduction of hooks in React 16.8 means that these distinctions no longer apply (see questions 14 and 15).

Further reading

4. What are keys used for?

Answer

When rendering out collections in React, adding a key to each repeated element is important to help React track the association between elements and data. The key should be a unique ID, ideally a UUID or other unique string from the collection item:

<ul>
  {todos.map((todo) =>
    <li key={todo.id}>
      {todo.text}
    </li>
  )};
</ul>

Not using a key, or using an index as a key, can result in strange behavior when adding and removing items from the collection.

Further reading

5. What’s the difference between state and props?

Answer

props are data that are passed into a component from its parent. They should not be mutated, but rather only displayed or used to calculate other values. State is a component’s internal data that can be modified during the lifetime of the component, and is maintained between re-renders.

Further reading

6. Why call setState instead of directly mutating state?

Answer

If you try to mutate a component’s state directly, React has no way of knowing that it needs to re-render the component. By using the setState() method, React can update the component’s UI.

Bonus

As a bonus, you can also talk about how state updates are not guaranteed to be synchronous. If you need to update a component’s state based on another piece of state (or props), pass a function to setState() that takes state and props as its two arguments:

this.setState((state, props) => ({
  counter: state.counter + props.increment
}));

Further reading

7. How do you restrict the type of value passed as a prop, or make it required?

Answer

In order to type-check a component’s props, you can use the prop-types package (previously included as part of React, prior to 15.5) to declare the type of value that’s expected and whether the prop is required or not:

import PropTypes from 'prop-types';

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

Greeting.propTypes = {
  name: PropTypes.string
};

Further reading

Continue reading 15 React Interview Questions with Solutions on SitePoint.


This content originally appeared on SitePoint and was authored by Nilson Jacques


Print Share Comment Cite Upload Translate Updates
APA

Nilson Jacques | Sciencx (2020-09-21T02:30:35+00:00) 15 React Interview Questions with Solutions. Retrieved from https://www.scien.cx/2020/09/21/15-react-interview-questions-with-solutions/

MLA
" » 15 React Interview Questions with Solutions." Nilson Jacques | Sciencx - Monday September 21, 2020, https://www.scien.cx/2020/09/21/15-react-interview-questions-with-solutions/
HARVARD
Nilson Jacques | Sciencx Monday September 21, 2020 » 15 React Interview Questions with Solutions., viewed ,<https://www.scien.cx/2020/09/21/15-react-interview-questions-with-solutions/>
VANCOUVER
Nilson Jacques | Sciencx - » 15 React Interview Questions with Solutions. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2020/09/21/15-react-interview-questions-with-solutions/
CHICAGO
" » 15 React Interview Questions with Solutions." Nilson Jacques | Sciencx - Accessed . https://www.scien.cx/2020/09/21/15-react-interview-questions-with-solutions/
IEEE
" » 15 React Interview Questions with Solutions." Nilson Jacques | Sciencx [Online]. Available: https://www.scien.cx/2020/09/21/15-react-interview-questions-with-solutions/. [Accessed: ]
rf:citation
» 15 React Interview Questions with Solutions | Nilson Jacques | Sciencx | https://www.scien.cx/2020/09/21/15-react-interview-questions-with-solutions/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.