ThatDev.Shparki

React Component Patterns: Composition

Building flexible components with composition patterns.

· 1 min read
react patterns frontend

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna.

The Problem with Props

Vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum.

// Too many props
<Card
  title="Hello"
  subtitle="World"
  icon={<Icon />}
  footer={<Footer />}
  headerAction={<Button />}
/>

Compound Components

Maecenas sed diam eget risus varius blandit sit amet non magna.

Implementation

Nullam id dolor id nibh ultricies vehicula ut id elit.

function Card({ children }) {
  return <div className="card">{children}</div>;
}

Card.Header = function CardHeader({ children }) {
  return <div className="card-header">{children}</div>;
};

Card.Body = function CardBody({ children }) {
  return <div className="card-body">{children}</div>;
};

Usage

Cras justo odio, dapibus ac facilisis in, egestas eget quam.

<Card>
  <Card.Header>Title</Card.Header>
  <Card.Body>Content</Card.Body>
</Card>

Benefits

Lorem ipsum dolor sit amet.

  • Flexible API
  • Clear hierarchy
  • Easy to extend

Conclusion

Donec ullamcorper nulla non metus auctor fringilla.