Containment Pattern

In React, Containment Pattern is a “Parent-Child pattern” that manages the state and logic for a specific section of UI. It involves a parent component that encapsulates one or more child components. The parent component can also pass props to child components, these child components are responsible for presenting the UI based on the props it has received. Containment pattern allows parent component to pass the same logic or data across multiple components that utilzes this data to implement its own render logic or JSX.

Example: This example demonstrates the implementation of Containment Pattern.

Javascript




import React from "react";
  
function ParentComponent({ children }) {
    return <h1>{children}</h1>;
}
function ChildComponent() {
    return <div> I'm a Child Component </div>;
}
  
function App() {
    return (
        <ParentComponent>
            <ChildComponent />
        </ParentComponent>
    );
}
  
export default App;


Output :

React JS Component Composition

Component composition in React involves the inclusion of one or more components in a single component, where each sub-component can further consist of additional components. Components in React are building blocks that are used to create user interfaces (UIs).

Table of Content

  • What is a Component Composition in React?
  • How can composition help performance?
  • Composing Components with props
  • Higher order components
  • Render Props pattern
  • Using Hooks in Component Composition
  • Context API and Composition
  • Compound Components
  • Component Composition Patterns
  • Containment Pattern
  • Specialization Pattern
  • Why Composition Wins Over Inheritance?

Similar Reads

What is a Component Composition in React?

Component composition in React involves combining smaller, independent components to create complex UIs. Each sub-component can contain further components, enhancing code readability. This process breaks down the UI into manageable pieces, aiding traceability, scalability, and maintenance. Component composition facilitates easier debugging and isolated changes, making web development more efficient and maintainable....

How can composition help performance?

Composition can enhance performance in software development through several key mechanisms:...

Steps to Create the React Application :

Step 1: Create a new react application using the following command....

Composing Components with props:

...

Higher order components:

...

Render Props pattern:

...

Using Hooks in Component Composition:

Composing components with props involves passing props through attributes to the components, and these components are composed in another component. Passing props through attributes to a component is similar to passing arguments to a JavaScript function. Props are like data packets that are passed down to child components from parent component, which helps child components customize their information and appearnce accordingly....

Context API and Composition:

...

Compound Components:

...

Component Composition Patterns:

In React, a Higher Order Component (HOC) is a function that takes a component and returns a new one with added props or behavior. Similar to higher order functions in JavaScript, HOCs are used to reuse component logic throughout an application. They enable developers to enhance existing components with new props without altering the original component code, thus avoiding unnecessary rewriting....

Containment Pattern:

...

Specialization Pattern :

...

Why Composition Wins Over Inheritance?

The Render Prop pattern in React involves passing a function as a prop to a component, which returns a React element. Instead of implementing its own rendering logic, the component calls this function. This pattern enables sharing and reusing rendering logic across multiple components. It’s particularly useful when a component possesses data but lacks the JSX definition to render it. In such cases, a parent component passes a function with JSX structure as a prop to the child component, which utilizes this function to render JSX....

Contact Us