Practise React one question at a time. Answer out loud or in writing, get graded, and see exactly what you missed.
What is the Virtual DOM and how does it work?
The Virtual DOM is an in-memory JavaScript representation of the Document Object Model (DOM), which React syncs with the real DOM.
When state changes, React takes four steps:
- React builds a new virtual DOM tree.
- React compares, or diffs, it with the previous tree.
- React works out the changes the real DOM needs.
- React applies only those changes to the real DOM.
This process is called reconciliation. The benefit is declarative code. You describe the UI, and React makes only the DOM writes it needs.
Missed:
“Functional components are just plain functions that take props and return JSX, so the syntax is a lot simpler, and they handle state and side effects through hooks like useState and useEffect. Class components extend React.Component, keep state in this.state, and use lifecycle methods like componentDidMount, so they're more verbose and you have to deal with this. I'd also say functional components tend to be a bit lighter and easier to test because there's less boilerplate around them.”
Knew itThey cover the core split: plain functions with hooks versus classes with this.state and lifecycle methods. To strengthen it, mention that error boundaries still require a class and that performance is about the same.
Missed: Does not say that error boundaries still require a class component.
Missed: Does not say function components are the preferred modern approach and classes are legacy. The 'a bit lighter' claim is vague, since raw performance is about the same.
Get your own answers graded
Sign up free. Your account comes with 50 credits for grading, and it remembers what you missed.
What it covers
- JSX and rendering basics
- Components, props and state
- Events and forms
- Hooks, effects and lifecycle
- Context and state management
- Routing, auth and security
- Error handling and async data
- Component design patterns
- Testing React components
- Tooling, builds and deployment
- Performance optimization
- Concurrent and server rendering
All 103 questions
JSX and rendering basics
How JSX turns into elements, how the virtual DOM works, and how to render fragments, conditions, lists with keys and portals.
- What is the Virtual DOM and how does it work?
- What is JSX and why is it used in React?
- What's the difference between React elements and React components?
- What are the rules of JSX?
- What is React Fragment and when would you use it?
- How do you conditionally render elements in React?
- How do you render lists in React?
- What is the difference between React and ReactDOM? Pro
-
What is the
keyprop and why is it important? Pro - What are React Portals? Pro
Components, props and state
Function and class components, and how data moves through a tree: props down, callbacks up, and the problem of prop drilling.
- What are the differences between functional and class components?
- How do you create a React component?
- What are props in React?
- What is state in React?
- What's the difference between props and state?
- What is lifting state up in React, and when do you need it? Pro
- How do you pass data from child to parent component? Pro
- What is prop drilling and how can you avoid it? Pro
Events and forms
Handling events with SyntheticEvents, passing arguments to handlers, controlled and uncontrolled inputs, form validation and drag and drop.
- How do you handle events in React?
- How do you prevent default behavior in React events?
- How do you pass parameters to event handlers?
- What are controlled vs uncontrolled components? Pro
- What are SyntheticEvents in React? Pro
- How do you handle form validation in React? Pro
- How do you handle different form input types? Pro
- How do you handle forms with multiple inputs efficiently? Pro
- How do you implement drag and drop in React? Pro
Hooks, effects and lifecycle
The core hooks and their rules, custom hooks, useEffect and its dependencies, useLayoutEffect, and the class lifecycle methods they replace.
- What is useState hook and how do you use it? Pro
- What are React Hooks? Pro
- What are React lifecycle methods? Pro
- What is componentDidMount and when is it used? Pro
- What is componentWillUnmount and when is it used? Pro
- What is useEffect hook and what are its use cases? Pro
- What's the difference between useEffect with and without dependencies? Pro
- What is useReducer hook and when should you use it? Pro
- What are the rules of Hooks? Pro
- What is useRef hook? Pro
- What are custom Hooks? Pro
- What is useId hook? Pro
- What is the difference between useLayoutEffect and useEffect? Pro
- What is a stale closure in React hooks, and how do you fix it? Pro
Context and state management
Sharing state with Context and when it gets slow, picking a state approach or library such as Redux, and persisting or undoing state.
- What is the useContext hook and how do you use it? Pro
- What is React Context and when should you use it? Pro
- What are different ways to manage state in React? Pro
- When should you use external state management libraries? Pro
- How do you handle state persistence across page refreshes? Pro
- What is Redux and how does it work with React? Pro
- What are the performance implications of Context? Pro
- How do you implement undo/redo functionality? Pro
Routing, auth and security
Client-side routing with React Router, route parameters and protected routes, handling login and permissions, and common security risks like XSS.
- What is React Router and how do you use it? Pro
- How do you handle route parameters in React Router? Pro
- How do you implement protected routes? Pro
- What's the difference between BrowserRouter and HashRouter? Pro
- What are common security concerns in React applications? Pro
- How do you handle authentication and authorization? Pro
Error handling and async data
Catching render errors with error boundaries, handling failed async requests, and keeping the UI responsive with optimistic updates.
Component design patterns
Ways to reuse logic and build flexible components: composition, HOCs, render props, compound components, providers, forwarded refs and state reducers.
- What is the Container/Presentational component pattern? Pro
- What is the Provider pattern? Pro
- What is Component Composition and how does it compare to inheritance? Pro
- What are Higher-Order Components (HOCs)? Pro
- What is the Render Props pattern? Pro
- What is the Forwarding Refs pattern? Pro
- What are Compound Components? Pro
- What is the Observer pattern in React? Pro
- What is the State Reducer pattern? Pro
Testing React components
Testing components, state, effects, context, custom hooks, async API calls and complex user interactions with Jest and React Testing Library.
Tooling, builds and deployment
Project setup tools such as Create React App and Vite, StrictMode, development and production builds, environment variables and ways to deploy.
Performance optimization
Stopping unneeded re-renders with memo, useMemo and useCallback, splitting code, handling long lists and images, and measuring where time goes.
- What is useMemo hook and when should you use it? Pro
- What is useCallback hook? Pro
- What is React.memo and when should you use it? Pro
- What is the difference between useMemo and React.memo? Pro
- What is React.lazy and Suspense? Pro
- What is code splitting in React? Pro
- How do you optimize images in React applications? Pro
- What are some common React performance optimization techniques? Pro
- What are the best practices for optimizing large lists? Pro
- How do you optimize React apps for production? Pro
- How do you implement infinite scrolling in React? Pro
- How do you measure React application performance? Pro
- What is the React Compiler? Pro
Concurrent and server rendering
How Fiber lets React pause and prioritize work, the concurrent hooks added in React 18, and rendering on the server with SSR, SSG and Server Components.
- What is Server-Side Rendering (SSR) vs Client-Side Rendering (CSR)? Pro
- What is Static Site Generation (SSG)? Pro
- What are the new features in React 19? Pro
- What is hydration in React? Pro
- What are the new features in React 18? Pro
- What is React Fiber? Pro
- What are concurrent features in React? Pro
- What is useTransition hook? Pro
- What is useDeferredValue hook? Pro
- What is useSyncExternalStore hook? Pro
- What are React Server Components? Pro
All questions
Showing of 103What is the Virtual DOM and how does it work?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
The Virtual DOM is an in-memory JavaScript representation of the Document Object Model (DOM), which React syncs with the real DOM.
When state changes, React takes four steps:
- React builds a new virtual DOM tree.
- React compares, or diffs, it with the previous tree.
- React works out the changes the real DOM needs.
- React applies only those changes to the real DOM.
This process is called reconciliation. The benefit is declarative code. You describe the UI, and React makes only the DOM writes it needs.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
What is JSX and why is it used in React?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
JSX, short for JavaScript XML, is a syntax extension that lets you write HTML-like markup inside JavaScript. It makes components easier to read and write, and lets you mix JavaScript expressions into markup. JSX also gives better error messages and enables static type checking.
A compiler such as Babel turns JSX into function calls. The classic transform produces React.createElement() calls.
// JSX
const element = <h1>Hello, World!</h1>;
// Transpiled to
const element = React.createElement('h1', null, 'Hello, World!');
The new JSX transform, supported since React 17, calls react/jsx-runtime instead, so you can use JSX without importing React. React 19 requires it.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
What's the difference between React elements and React components?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
A React element is a plain object describing what should appear on screen, while a React component is a function or class that returns elements. Elements are the smallest building blocks of a React app, and components are the reusable pieces that produce them.
const element = <h1>Hello, World!</h1>;
JSX like this creates an element. React never changes an element after it's created, so to show something different, React calls your components again and gets new elements.
// Function component
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
// Class component
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
A component accepts inputs called props and can be reused anywhere. You write <Welcome name="Sara" /> to use it, and React calls Welcome with those props to get the element to render.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
What are the differences between functional and class components?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
The main difference is how they handle state and lifecycle logic. A function component is a plain function that uses Hooks such as useState. A class component extends React.Component and uses this.state and lifecycle methods. Function components are the preferred approach in modern React, and classes are a legacy approach React still supports.
Function components have simpler syntax and are easier to test and debug. They skip some class overhead, like creating instances and binding handlers, but raw performance is about the same.
function MyComponent(props) {
const [count, setCount] = useState(0);
return <div>{count}</div>;
}
Class components are more verbose and return JSX from render(). They use lifecycle methods such as componentDidMount and have access to the this context.
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = { count: 0 };
}
render() {
return <div>{this.state.count}</div>;
}
}
Error boundaries still require a class, because there is no way to write one as a function component.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
How do you create a React component?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
Write a JavaScript function that returns JSX, and give it a name that starts with a capital letter. React calls it with a props object, and you use it in JSX like an HTML tag, such as <Welcome name="Sara" />.
There are two main ways to write one:
- A function component, the recommended way. You can declare it with the
functionkeyword or as an arrow function. - A class component, which extends
React.Componentand returns JSX fromrender(). It's the older style, and React still supports it.
function Welcome(props) {
return <h1>Hello, {props.name}!</h1>;
}
// Or using arrow function
const Welcome = (props) => {
return <h1>Hello, {props.name}!</h1>;
};
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}!</h1>;
}
}
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
What are the rules of JSX?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
JSX needs a single parent element, camelCase attributes and closed tags, because it compiles to JavaScript rather than HTML. The key rules:
- A component must return a single parent element, or wrap its siblings in a React Fragment.
- Attributes use camelCase, so
classbecomesclassNameandonclickbecomesonClick. - Every tag must close, and self-closing tags end with
/>. - Curly braces embed JavaScript expressions, such as
{variable}or{expression}. - A boolean attribute can be written as
disabled={true}or justdisabled.
// Correct JSX
function MyComponent() {
return (
<div className="container">
<img src="image.jpg" alt="Description" />
<p>Count: {count}</p>
</div>
);
}
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
What is React Fragment and when would you use it?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
React Fragment lets you group multiple elements without adding an extra node to the DOM. It's useful when you need to return multiple elements from a component but don't want to wrap them in a div.
// Using React.Fragment
function MyComponent() {
return (
<React.Fragment>
<h1>Title</h1>
<p>Description</p>
</React.Fragment>
);
}
// Using short syntax
function MyComponent() {
return (
<>
<h1>Title</h1>
<p>Description</p>
</>
);
}
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
How do you conditionally render elements in React?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
Use plain JavaScript to choose what to render. There are three common patterns.
- A ternary,
condition ? <A /> : <B />, picks between two elements.
function Greeting({ isLoggedIn }) {
return (
<div>
{isLoggedIn ? <h1>Welcome back!</h1> : <h1>Please log in.</h1>}
</div>
);
}
- Logical AND,
condition && <A />, renders an element or nothing.
function Notification({ hasMessages }) {
return (
<div>
{hasMessages && <p>You have new messages!</p>}
</div>
);
}
- An
ifandelsestatement with early returns handles bigger branches.
function UserStatus({ user }) {
if (user.isAdmin) {
return <AdminPanel />;
} else if (user.isLoggedIn) {
return <UserPanel />;
} else {
return <LoginForm />;
}
}
Keep the left side of && a boolean. If it's the number 0, React renders 0 instead of nothing.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
How do you render lists in React?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
Call map() on the array and return a JSX element for each item. Give each element a key prop that is unique among its siblings.
function TodoList({ todos }) {
return (
<ul>
{todos.map(todo => (
<li key={todo.id}>
{todo.text}
</li>
))}
</ul>
);
}
The key tells React which item each element belongs to. When the list changes, React uses the keys to see which items were added, removed or changed. It then updates only those and keeps each item's state, which improves performance during re-renders.
Use a stable ID from your data as the key. An array index breaks when items are inserted, removed or reordered, and a random key makes React recreate every item on each render.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
What are props in React?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
Props, short for properties, are read-only inputs that a parent component passes to a child component. They let data flow down the component tree.
// Parent component
function App() {
return <Welcome name="John" age={25} />;
}
// Child component
function Welcome(props) {
return <h1>Hello, {props.name}! You are {props.age} years old.</h1>;
}
A child treats its props as immutable. It reads them to decide what to render and never changes them. A prop can be any JavaScript value, such as a string, a number or an object. Function props work too, which is how a child tells its parent that something happened.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
What is state in React?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
State is data React keeps for a component, and it can change over the component's lifetime. When state changes, React re-renders the component.
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>
Increment
</button>
</div>
);
}
State is local to its component, and each copy of the component gets its own. It is mutable in the sense that it changes over time, but you never modify it directly. You call the setter, like setCount, and React re-renders with the new value.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
What's the difference between props and state?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
Props are inputs a component receives from its parent, and state is data a component owns and changes itself. Props flow down and are read-only, while state is the component's own memory.
| Props | State |
|---|---|
| Read-only | Mutable |
| Passed from parent | Local to component |
| Cannot be changed by component | Can be changed by component |
| External data | Internal data |
| Functional parameters | Component memory |
A component can't change its own props. When the parent passes new props, the component re-renders with them. State changes through the component's setter, like setCount, and each change also triggers a re-render. The two often meet, because a parent's state becomes a child's props.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
How do you handle events in React?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
Pass a function as a camelCase prop on the element, like onClick={handleClick}. React calls it with an event object when the event fires, such as a click or a key press.
function Button() {
const handleClick = (event) => {
event.preventDefault();
console.log('Button clicked!');
console.log('Event type:', event.type);
};
return (
<button onClick={handleClick}>
Click me
</button>
);
}
Pass the function itself, not a call. onClick={handleClick()} would run the handler during rendering instead of on click.
The event object is a SyntheticEvent, React's wrapper around the native browser event. It behaves the same across browsers and has the usual methods and properties, such as preventDefault() and type.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
How do you prevent default behavior in React events?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
Call preventDefault() on the event object that React passes to your handler. The usual case is a form, where it stops the browser from submitting and reloading the page, so your code can handle the data instead.
function Form() {
const handleSubmit = (event) => {
event.preventDefault(); // Prevents form from submitting
console.log('Form submitted');
};
return (
<form onSubmit={handleSubmit}>
<input type="text" />
<button type="submit">Submit</button>
</form>
);
}
Returning false from the handler doesn't work in React the way it does in plain HTML. You must call preventDefault() explicitly. To stop the event from bubbling up to parent elements, call stopPropagation(), which is a different thing.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
How do you pass parameters to event handlers?
Answer it yourself first - out loud, or typed below.
How should your speech become text?
Listening… your words appear above as you speak - tap Stop when you're done.
Recording · cr - tap Stop & transcribe when you're done.
Transcribing with AI…
Voice:
Last attempt -
Wrap the handler in an arrow function inside the JSX, and call your handler with the values you need. React calls the arrow on click, and the arrow calls your handler with the item's ID.
There are two common ways to do it:
- An arrow function, like
onClick={() => handleClick(item.id)}, puts the call and its arguments right in the JSX. - The function's
bindmethod pre-fills the arguments, as inhandleClick.bind(null, item.id). React passes the event after them.
function ItemList({ items }) {
const handleClick = (id) => {
console.log('Clicked item:', id);
};
return (
<div>
{items.map(item => (
<button key={item.id} onClick={() => handleClick(item.id)}>
{item.name}
</button>
))}
</div>
);
}
To use the event as well, pass it along with (e) => handleClick(item.id, e). Both ways create a new function on every render. That only matters when the handler goes to a memoized child.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
What is useState hook and how do you use it?
What are controlled vs uncontrolled components?
What is the difference between React and ReactDOM?
What is lifting state up in React, and when do you need it?
What are React Hooks?
How do you pass data from child to parent component?
What is the key prop and why is it important?
What is prop drilling and how can you avoid it?
What are SyntheticEvents in React?
What are React lifecycle methods?
What is componentDidMount and when is it used?
What is componentWillUnmount and when is it used?
What is useEffect hook and what are its use cases?
What's the difference between useEffect with and without dependencies?
What is the useContext hook and how do you use it?
What is useReducer hook and when should you use it?
What are the rules of Hooks?
What is useMemo hook and when should you use it?
What is useCallback hook?
What is useRef hook?
What are custom Hooks?
What is React Context and when should you use it?
What are different ways to manage state in React?
When should you use external state management libraries?
What is React.memo and when should you use it?
What is the difference between useMemo and React.memo?
What is React.lazy and Suspense?
What is code splitting in React?
What are Error Boundaries in React?
How do you handle errors in async operations?
What is React Router and how do you use it?
How do you handle route parameters in React Router?
How do you implement protected routes?
What's the difference between BrowserRouter and HashRouter?
How do you handle form validation in React?
How do you handle different form input types?
How do you test React components?
How do you test components with state and effects?
How do you test async operations and API calls?
How do you test components with Context?
What alternatives exist to Create React App?
What is the difference between development and production builds?
How do you handle environment variables in React?
What are some deployment strategies for React applications?
What is React.StrictMode?
What are React Portals?
How do you handle forms with multiple inputs efficiently?
What is useId hook?
What is the Container/Presentational component pattern?
How do you optimize images in React applications?
How do you test custom hooks?
What is Server-Side Rendering (SSR) vs Client-Side Rendering (CSR)?
What is Static Site Generation (SSG)?
How do you handle state persistence across page refreshes?
What is the difference between useLayoutEffect and useEffect?
What are the new features in React 19?
What is hydration in React?
What is Redux and how does it work with React?
What is the Provider pattern?
What are the new features in React 18?
What is Component Composition and how does it compare to inheritance?
What are Higher-Order Components (HOCs)?
What is the Render Props pattern?
What is the Forwarding Refs pattern?
What are some common React performance optimization techniques?
What are the best practices for optimizing large lists?
What are the performance implications of Context?
How do you create Error Boundaries with Hooks?
What are Compound Components?
How do you optimize React apps for production?
What is React Fiber?
What are concurrent features in React?
How do you implement drag and drop in React?
How do you implement infinite scrolling in React?
What is useTransition hook?
What is useDeferredValue hook?
What is useSyncExternalStore hook?
What is the Observer pattern in React?
What is the State Reducer pattern?
How do you measure React application performance?
How do you implement undo/redo functionality?
How do you implement optimistic updates?
What are common security concerns in React applications?
How do you handle authentication and authorization?
How do you test components with complex user interactions?
What are React Server Components?
What is the React Compiler?
What is a stale closure in React hooks, and how do you fix it?
This answer is part of Pro.
The full written answer, with the trade-offs and follow-ups an interviewer will probe.
No matches
Try a different filter or search term.
React in pictures.
A quick recap of React in 33 short animated pictures, one idea at a time. About 8 min to get the whole topic back in your head before you walk in. Pause any picture, slow it down, or step through it.
Pro The first chapter is free to play. The other 28 pictures come with Pro.
This picture is part of Pro. The first chapter is free to play; the other 28 pictures come with Pro.
Get Pro · $10/mo Already Pro? Sign in88 of 103 React answers are in Pro.
Full answers, code samples, and AI explanations that go simpler or deeper. Cancel anytime.
- Full answers + code
- AI explanations, simpler or deeper
- 1,000 AI credits / month
- Cancel anytime
Change topic
Pick a different technology or stack. Your current topic stays put until you choose a new one.
MEAN
MongoDB, Express, Angular, Node.jsMERN
MongoDB, Express, React, Node.jsDjango
Python Full-Stack DevelopmentRuby on Rails
Convention over ConfigurationServerless on AWS
Serverless Architecture on AWSInterviewers also test these - they're common to every stack, whichever one you picked above.
Flutter Mobile
Flutter Cross-Platform Mobile DevelopmentInterviewers also test these - they're common to every stack, whichever one you picked above.
Spring Boot
Enterprise Java Development.NET
Microsoft EcosystemVue
Vue.js, Vite, TypeScript, Tailwind, Node.jsGo Backend
Golang, gRPC, PostgreSQL, Redis, RabbitMQInterviewers also test these - they're common to every stack, whichever one you picked above.
FastAPI
Python, FastAPI, SQLAlchemy, PostgreSQLReact Native
React, TypeScript, Redux, FirebaseiOS Native
Swift, SwiftUI, UIKit, FirebaseAndroid Native
Java, Jetpack Compose, FirebaseDevOps / Platform
Docker, Kubernetes, Terraform, CI/CDInterviewers also test these - they're common to every stack, whichever one you picked above.
AI Engineer
LLMs, RAG, Agents, EvalsAI-Powered Developer
Claude Code, Copilot, Agentic WorkflowsCore SWE Interview Prep
Data structures, algorithms, OS, concurrency, networking, gitInterviewers also test these - they're common to every stack, whichever one you picked above.
Interviewers also test these - they're common to every stack, whichever one you picked above.