In React, components often pass data down to other components using props. This works great — until the component that needs the data is deeply nested.
When you have to pass props through multiple layers of components that don’t actually use them, just to get them to a component further down the tree, that’s called prop drilling.
What is Prop Drilling?
Prop drilling is when you “drill” data through several components unnecessarily.
The intermediate components act only as pass-throughs for props.
Example of Prop Drilling
function Grandchild({ user }) {
return <h1>Hello, {user.name}</h1>;
}
function Child({ user }) {
return <Grandchild user={user} />;
}
function Parent({ user }) {
return <Child user={user} />;
}
export default function App() {
const user = { name: "Safal" };
return <Parent user={user} />;
}
Here:
-
Parent
andChild
don’t useuser
at all. - They only pass it down to
Grandchild
.
Why is it a Problem?
- Hard to maintain — If you change the prop name or structure, you must update every component in the chain.
- Clutters props — Components get props they don’t actually need.
- Hurts reusability — Components become tied to certain props just to pass them along.
Important Clarification:
Prop drilling has nothing to do with re-rendering performance.
It’s about code organization and maintainability, not how many times components render. React’s rendering behavior is unaffected just because you pass props through multiple layers — the main drawback is the extra wiring in your component tree.
✅ Key takeaway:
Prop drilling is simply the process of passing props through components that don’t use them, in order to reach a deeply nested component. It’s more of a code cleanliness and maintainability issue than a performance one.
Top comments (0)