35+ Basic & Advanced ReactJS Interview Questions
21 November 2018
If you are looking for the top 50 React interview questions, you came to the right place. Without further ado, let’s take a look at React interview questions that will help you prepare for your interview. We are going to talk about the most basic React js interview questions as well as some intermediate and advanced ReactJS interview questions and answers for experienced.
To prepare yourself for a React interview properly, you may also watch and follow this short (less than 1 hour) crash course on building a Progressive Web App in React, or alternatively this complete learning path from novice to expert.
Basic ReactJS Interview Questions
1. What is ReactJS?
2. Name some advantages of React.
A: One of the basic React.js interview questions. You should be able to name some of the React’s biggest advantages such as:
- High efficiency: React is known for its flexibility and efficiency because of its own virtual DOM that it creates. It automatically calculates the changes needed to be made in DOM thus avoiding expensive DOM options and making regular updates whenever needed.
- A variety of developer tools: in order to get the most out of React.js, you should install its official browser extension. It comes in quite handy, especially for debugging the app. It gives you a direct look into the virtual DOM as if you were browsing a regular DOM tree in the elements panel.
3. What is JSX?
4. What are th disadvantages of React.js?
A: When talking about React questions, one should be well aware of the biggest disadvantages of this framework. Let’s take a look at some you should name.
- Integration with traditional MVC framework requires major configurations
- The steep learning curve for the beginners
5. What is the difference between createElement and cloneElement?
A: This is one of the quite logical React interview questions and answers. Basically, as the name suggests, createElement what React uses to create React Elements, cloneElement, on the other hand, is used to clone an element and pass it new props. Might seem quite obvious, but it is still one of the top 50 interview questions and answers.
6. What is the second argument that can optionally be passed to setState and what is its purpose?
A: When preparing for your React js interview, you need to know that a callback function is invoked when setState has finished and the component is re-rendered. However, keep in mind that setState is asynchronous and that is the reason why it requires a second callback function. However, rather than relying solely on the callback function, one should use another lifecycle method.
7. What is the difference between state and props?
A: This is one of the ReactJS interview questions and answers for experienced as well as for the beginners.
Long story short, the state is a data structure that starts with a default value when a component mounts. It may be mutated across time, mostly as a result of user events.
Props, on the other hand, are a component’s configuration. Think of them as the way for the components to communicate with each other. They are received from the above component and immutable as far as the component receiving them is concerned. A component isn’t able to change its props, but it has to put together the props of its child components. While the props are mostly data, other things can be passed as them as well, for example, callback functions.
Props and state do similar things but are used in different ways. The main difference is that props are immutable and cannot be changed while the state is used for mutable data or data that will change.
8. What is Redux?
A: You need to know a thing or two about React-Redux when preparing for an interview. With that in mind, we have composed several Redux interview questions so let’s start with the most basic one.
The general idea behind Redux is that there should be only a single source of truth for your application state, such as the UI state (which tab is active) or the data state (the user profile details).
All of the data is retained in the Redux store. The createStore function is used to create mentioned stores. This function accepts another function as an argument. The passed in function (also known as the reducer) is responsible for returning the state of the application at a certain point in time which is then persisted in the store.
9. What is the difference between React Native and React?
10. What do you understand by “Single source of truth”?
A: We have mentioned the single source of truth many time earlier in this article but would you know how to explain what it actually means? Well, you should because this is one of the React interview questions that are pretty basic.
The single source of truth refers to the store used for storing the app’s entire state at one place. The benefits of the single source of truth include the facts that all the components stored there receive updates from the store itself, it is easier to keep track of their changes, as well as debug and inspect the application.
11. What is React Router?
A: React Router is a powerful routing library built on top of React. It is highly useful for adding new screens and flows to the application while keeping the URL in sync with data displayed on the web page. The React Router has a simple AP and it maintains a standardized behavior and structure for developing single page web apps.
12. Why is switch keyword used in React Router v4?
A: <div> is used to encapsulate multiple routes inside the Router. The switch keyword, however, is used when you want to display only a single route to be rendered amongst the several defined routes. The <switch> tag matches the typed URL with the defined routes in sequential order. When the first match is found, it renders the specified route bypassing all the other routes.
13. Why do we need a Router in React?
A: A Router is particularly useful for creating and defining multiple routes. When you type a specific URL that matches a path of any route defined inside the router, you will be redirected to that particular route. Basically, you will bypass all the other routes and get to the one you need.
14. How Virtual-DOM is more efficient than Dirty checking?
A: First thing to understand here is that in React, each component has a state which is observable. React knows when to re-render the scene because it is able to observe when this data changes. The observables are significantly faster than the Dirty checking because we don’t have to poll the data at a regular interval and check all of the values in the data structure recursively. By comparison, setting a value on the state will signal to a listener that some state has changed. In a situation like that, React can simply listen for change events on the state and queue up re-rendering.
Long story short, the virtual DOM is more efficient than the Dirty checking simply because it prevents all the unnecessary re-renders. Re-rendering only occurs when the state changes.
15. What is render() in React? Explain its purpose.
A: We should start by explaining that each React component must have a render() because it returns a single React element which is the representation of the native DOM component. If more than one HTML element needs to be rendered, then they must be grouped together inside one enclosing tag such as <form>, <group>, <div>etc. This function must be kept pure and return the same result each time it is invoked.
Intermediate ReactJS Interview Questions
17. What are refs in React? When to use them?
A: Refs are used for storing the reference of element or component returned by the component render() configuration function. In most cases, they should be avoided although there are some instances when using them is useful, such as:
- Managing focus, text selection, or media playback.
- Triggering imperative animations.
- Integrating with third-party DOM libraries.
18. What is the difference between DOM and virtual DOM in React.js?
A: DOM aka Document Object Model is an abstraction of structured code (HTML). Dom and HTML code are interrelated as the elements of HTML are known as nodes of DOM. It defines a structure where users modify the content present in the structure in any way they want (create, edit, alter, modify etc.). Basically, HTML is a text, DOM is an in-memory representation of this text.
Virtual DOM is a representation of DOM objects like a lightweight copy. It is used and provided for free by React.js
19. What are the controlled components and uncontrolled components in React?
A: When answering React interview questions, you should know that the form data is handled by the React components.
A controlled input accepts values as props and callbacks to change that value. The uncontrolled component, on the other hand, is a substitute for controlled components. In these cases, DOM itself handles the form data.
20. What’s the difference between an Element and a Component in React?
A: React element is an object representation of some UI. Basically, it describes what you want to see on the screen. A React component, on the other hand, is a function or a class that optionally accepts input and returns a React element. This is also one of the common interview questions on ReactJS.
21. Explain the difference between functional and class components.
Class components, on the other hand, have been around for quite some time. They use plain Java objects for creating pages. With the React’s create-a-class-factory method, a literal is passed in defining the methods of a new component.
If you’re a JS expert, React will give you more power. But if you are lacking the expertise, Vue will smooth some of the rough patches for you. It’s also worth noting that Vue doesn’t work with Arrow functions in the same way React does.
VUE.js was launched in 2014 and since then, it has been the most rapidly growing js framework. It is particularly useful for building intuitive interfaces while also being extremely adaptable. VUE is a web application framework that helps in making advanced single page applications.
In the end, they all have something to offer and being tribal about it is pointless and self-destructive.
23. What is the use of the arrow function in React?
A: The arrow function is something you should be familiar when preparing for React interview questions because this function is very important for React operations. It allows you to predict the behavior of bugs when passed as callbacks hence it prevents bugs caused by this altogether.
24. List some of the cases when you should use Refs.
A: Refs should be used in the following cases:
- When you need to manage focus, select text or media playback
- To trigger imperative animations
- Integrate with third-party DOM libraries
25. What are Pure Components?
A: Pure components are the simplest and fastest components which can replace any component with only a render(). Pure components enhance the simplicity of the code and performance of the application. Consider learning more about them when preparing for React native interview questions.
26. What is the significance of keys in React?
A: When you want to identify the unique virtual DOM elements with their corresponding data driving the UI – that is where the keys come in. By recycling all the existing elements in the DOM, the keys help React optimize the rendering. They allow React to reorder the elements instead of re-rendering them, which increases the app’s performance. Definitely add the keys on your list of ReactJS interview questions and answers.
27. How do you tell React to build in Production mode and what will it do?
A: Typically, you would use the Webpack’s DefinePlugin method to set NODE_ENV to production. This would strip out things like propType validation and extra warnings. It would be smart to minify your code as well because React uses Uglify’s dead-code elimination to strip out development only code and comments, which will significantly reduce the size of your bundle.
28. Describe how events are handled in React.
A: The event handlers in React will be passed instances of SyntheticEvent to solve cross-browser compatibility issues. As we mentioned earlier, SyntheticEvent is React’s cross-browser wrapper around the browser’s native event. The synthetic events have the same interface as the native ones but they work identically across all browsers.
However, React doesn’t actually attach events to the child nodes themselves. Instead, it uses a single event listener in order to listen to all events at the top level which. Not only is this great for the performance but it also means that React doesn’t have to keep track of the event listeners when updating the DOM.
29. What are the advantages of Redux?
A: Speaking of React Redux interview questions, one should definitely be able to name its most important advantages. This is one of the Redux interview questions and answers for experienced as well as for the beginners.
So let’s take a look at some of the advantages of ReactJS with Redux:
- Predictability of outcome – With only one source of truth, i.e. the store, there is no confusion about how to sync the current state with actions and other parts of the application.
- Maintainability – The code becomes easier to maintain with a predictable outcome and strict structure.
- Server-side rendering – You just need to pass the store created on the server to the client side. Not only is this good for the initial render but it also provides a better user experience as it optimizes the app performance.
- Developer tools – From actions to state changes, developers can track everything going on in the application in real time.
- Community and ecosystem – Anyone who has been new to something at some point in life (haven’t we all?) knows the importance of a solid community and its support. Luckily, Redux has a huge community of talented individuals that constantly contribute to the betterment of the library and develop various apps with it.
- Ease of testing – Redux’s code is easily testable and independent, mostly because the functions are small, pure, and isolated.
- Organization – Redux is precise about how code should be organized which makes the code more consistent and easier when a team works on it.
30. Is setState() async? Why?
A: setState() actions are indeed asynchronous. setState() doesn’t immediately mutate this.state. Instead, it creates a pending state transition. Accessing this.state after calling this method can potentially return the existing value. There is no guarantee of synchronous operation of calls to setState and calls may be batched for performance gains.
The reason behind is the way setState alters the state and causes rerendering. Making it synchronous might leave the browser unresponsive. That being said, the setState calls are asynchronous as well as batched for better UI experience and performance. Keep this in mind as this is definitely among the most popular 50 interview questions and answers when it comes to React.
31. Explain the components of Redux.
A: This is another common Redux React question. You should know that Redux is composed of the following components:
- Action — The action is the only source of information that sends data from our application to our store. Actions are sent the store using store.dispatch().
- Reducer — Reducers specify how the app’s state changes in response to actions sent to the store. Since the actions don’t show the application’s state changes, this place determines how the state will change to an action.
- Store — The Store is the object that brings Action and Reducer together. The store has the following responsibilities: Holds application state; Allows access to the state via getState(); Allows state to be updated via dispatch(action); Registers listeners via subscribe(listener); Handles unregistering of listeners via the function returned by subscribe (listener).
That being said, keep in mind that there is only a single store in a Redux application. When we want to split the data handling logic, we need to use the reducer composition instead of many stores.
32. What is Context?
Context enables passing data through the component tree without having to pass props down manually at every level. Which means you can deep-nest items without issue.
It is primarily used when some data needs to be accessible by many components at different nesting levels.
Advanced ReactJS Interview Questions
33. Explain mixin or higher order components (HOC) in React.
A: HOC in React are functions that take and return components. Basically, it reuses component logic. That being said, you should also know that HOC isn’t exactly a part of React API. They are functions that loop over and apply functions to every element in an array. Keep that in mind when answering React js questions.
34. What are synthetic events in React?
A: When talking about React js interview questions and answers, we should mention the synthetic events. They act as a cross-browser wrapper around the browser’s native event thus combining the behavior of different browsers into one API. Their purpose is to ensure that the events show consistent properties across different browsers.
35. What can you do with HOC?
A: You can use HOC for:
- Code reuse, logic and bootstrap abstraction
- Render hijacking
- State abstraction and manipulation
- Props manipulation
36. What is Redux Thunk used for?
A: Speaking of ReactJS Redux, you should also be familiar with Redux Thunk used to write action creators that return a function instead of an action. In addition to that, it can be used to delay the dispatch of an action if a certain condition is met. This allows us to handle the asynchronous dispatching of actions. The inner function receives the store methods dispatch and getState as parameters.
Ending thoughts on React interview questions
If you are a developer interested in building interactive UI for mobile users, learning a bit more about React would probably be a good idea. If you have already decided to give it a try and join the industry, here is a list of the React interview questions that you should prepare for.
We did our best to cover all the basics and give you the most important answers about the major elements of React.js as well as Redux. Hopefully, this React js interview questions and answers pdf will be of help to you.
If you enjoyed reading this article on React interview questions, you should check out this one about Python vs PHP.
We also wrote about a few related subjects like Node.js interview questions, best IDE for web development, Python web development, Python frameworks, web developer interview questions and Python interview questions.