Tool for HR, Hiring Managers, and the Leadership Team

What is Prop Drilling in React?

What is Prop Drilling in React?

Prop drilling happens when data is passed from a parent component to deeply nested child components through multiple intermediate components using props, even when those intermediate components do not need the data themselves.

It usually becomes a problem in large component trees because many components are forced to pass props down unnecessarily.

Simple Example

function App() {
  const user = "Sampath";

  return <Parent user={user} />;
}

function Parent({ user }) {
  return <Child user={user} />;
}

function Child({ user }) {
  return <GrandChild user={user} />;
}

function GrandChild({ user }) {
  return <h1>Hello {user}</h1>;
}

What is happening here?

  • App has the actual data (user)

  • GrandChild needs the data

  • Parent and Child are only forwarding the prop

  • This unnecessary passing is called prop drilling

Why is Prop Drilling a Problem?

1. Hard to Maintain

If the prop name changes, many components must be updated.

2. Reduced Readability

Intermediate components become cluttered with props they don't use.

3. Tight Coupling

Components become dependent on parent data flow.

4. Difficult Scaling

Large applications become messy when many props are drilled deeply.

Interview Definition

Prop drilling is the process of passing data from parent to deeply nested child components through multiple intermediary components using props, even when those intermediary components do not use the data.

How to Avoid Prop Drilling

1. React Context API

Best for globally/shared data like:

  • Theme

  • Logged-in user

  • Language

  • Authentication state

Example:

const UserContext = React.createContext();

function App() {
  return (
    <UserContext.Provider value="Sampath">
      <GrandChild />
    </UserContext.Provider>
  );
}

function GrandChild() {
  const user = React.useContext(UserContext);

  return <h1>Hello {user}</h1>;
}

Now data can be accessed directly without passing props through every component.

2. State Management Libraries

Used in larger applications:

  • Redux

  • Zustand

  • Recoil

  • MobX

These provide centralized state management.

Important Interview Follow-up

Is prop drilling always bad?

No.

For small component trees, prop drilling is completely fine and often simpler than introducing Context or Redux.

Avoid overengineering.

Difference Between Props and Prop Drilling

Props Prop Drilling
Normal way to pass data Excessive multi-level passing
Usually simple Can become messy
Direct parent → child Parent → child → grandchild → deeper

Real Interview Answer

Prop drilling in React refers to passing props through multiple nested components just to reach a deeply nested child component. Intermediate components may not use the props themselves, which can make the application harder to maintain. It is commonly solved using Context API or state management libraries like Redux.

Common Interview Questions

Q: How do you solve prop drilling?

  • Context API

  • Redux/Zustand

  • Component composition

Q: When should you avoid Context API?

  • Very frequently changing state can cause unnecessary re-renders.

Q: Is Context API a replacement for Redux?

  • Not completely.

  • Context handles shared state.

  • Redux provides advanced state management features like middleware, dev tools, predictable updates, etc.