Props Drilling

What is a Prop ?

A prop is a type of object in ReactJS where the value of attributes of a tag is stored. Props means properties and it has working functionalities like HTML attributes.

What is Drilling ?

Drilling is the process of the passing through multiple layers of components, without taking any considerations of the intermediate components and directly passing from higher level component to lower-level component that is nested in the lower and leaf levels of the component-tree.What is Props Drilling?

Some component-based frameworks, like React, use a method called props drilling to transfer data and functionalities from higher-level components to lower-level components in a nested component structure.

Components in React are arranged in a manner akin to a tree, with a parent component holding one or more child components, and those child components having the ability to have further children, thereby building a hierarchy. Props drilling is used to transfer information down through intermediary components when it must be accessible by a component far up the hierarchy. 

Props (short for properties) are provided from the parent component to its immediate child component in order to enable props drilling. The child component drills down the props and passes them as props to its child component, and so on, if it must provide the same data or functions to its child component.

This procedure is repeated until the required supports are given to the desired component. Even if the intermediate components themselves do not use the props, each component along the route serves as a conduit, sending the pertinent props to its child components.

Props drilling enables regulated data and functionality exchange across components. It encourages a one-way data flow in which information travels from higher-level or parent components to lower-level or child components. It is simpler to manage and comprehend how data is utilized and altered within the application when props are explicitly passed across the component hierarchy.

Props drilling, however, can be laborious and cause a huge number of props to be sent through numerous layers as the component hierarchy deepens. Alternative strategies, such as employing context or state management libraries, may be more appropriate in such circumstances.

Advantages of Props Drilling:

  1. Explicit data flow: Props digging encourages an application's use of transparent, explicit data flow. It is simple to comprehend how data is shared and manipulated within the component hierarchy because it is handed down through props from parent components to child components. Because it lessens unanticipated side effects and enables developers to reason about component behavior, this explicitness improves code maintainability and debugging.
  2. Component Reusability and Modularity: Drilling using props improves the modularity and reusability of components. By delivering data and functions as props, components can be utilized in other parts of the application and become more self-contained. This supports the adoption of a modular design approach where components can be combined and merged in many ways to create complex user interfaces. More flexible component composition is made possible by digging deeper into the component tree, which lessens the need for global state and results in scalable and maintainable code.

Disadvantages of Props Drilling: 

  1. Prop Drilling Anti-Pattern: One drawback of drilling for props is the possibility of an anti-pattern. Passing props via several layers can be laborious and result in difficult-to-maintain and -understand code as the component hierarchy develops. The codebase may become less readable as a result of an excessive amount of props being provided through components that don't directly use them.
  2. Increased Coupling: Drilling through props may result in increased coupling between parts. Any changes to the intermediate components may need to propagate across the component tree if they depend on props passed from higher-level components, which can happen when components deep in the hierarchy do. It may be difficult to redesign or restructure components without harming their dependencies due to this close dependency.

Example Code for Props Drilling:

import React from "react";

function App() {
const data = { message: "Hello, prop you have reached the child-node and hence you have been logged.!" };
return ;
}

function ParentComponent(props) {
return ;
}

function ChildComponent(props) {
return ;
}

function GrandchildComponent(props) {
return

{props.data.message}
;
}

export default App;

Use npm start to open the local server and interact with the application.

Output:

Conclusion:

Props drilling means it is the process of passing data from top to bottom through multiple layers of components. Although it might be an effective way of passing data, it can also lead to challenges in maintaining it and in code complexity.

References:

  1. https://www.simplilearn.com/what-is-reactjs-props-article#:~:text=In%20ReactJS%2C%20the%20props%20are,components%20are%20read%2Donly%20components.
  2. https://www.geeksforgeeks.org/what-is-prop-drilling-and-how-to-avoid-it/
  3. https://www.linkedin.com/pulse/what-prop-drilling-how-different-than-context-api-sarala-phuyal/
  4. https://chat.openai.com/?model=text-davinci-002-render-sha

Do Checkout :

To know more about such interesting topics, visit this link.

Do visit our website to know more about our product. 

Article By, Dinesh Sai Kumar Pilla

Reviewed By, Meghana Prabhandham