React: Reutilização Eficiente com o Padrão Compound Components

Rafael Ramires Nai
gb.tech
Published in
2 min readJul 4, 2024

Você já pensou em construir componentes no React como se estivesse montando um quebra-cabeça, onde cada peça é única, mas juntas formam algo extraordinário?

Isso é exatamente o que o padrão Compound Components permite! Neste artigo, vamos explorar esse conceito de uma forma simples e eficiente, entender como ele funciona por baixo dos panos e aprender juntos como aplicá-lo de maneira prática e eficiente nos seus projetos React.

Uma vista colorida e vibrante do chão, onde diversos blocos de Lego de diferentes cores estão espalhados, criando um padrão alegre e divertido.

O Padrão de Componentes Compostos é como ter um conjunto de LEGO de desenvolvimento, onde cada peça é um componente independente que, quando combinados, criam algo maior e mais poderoso. Cada parte do componente (os componentes “filhos”) tem sua própria lógica e responsabilidade, mas juntos formam uma unidade coesa.

Como isso acontece na prática?

Vamos imaginar um exemplo simples: um componente Accordion que contém vários painéis para exibir diferentes conteúdos. Cada painel do Accordion é como uma peça de LEGO, independente e única, mas juntos, eles formam o componente completo do Accordion. Ao utilizar o padrão de Compound Component, conseguimos facilmente gerenciar como esses componentes interagem e se comportam, de uma maneira que faz sentido e é fácil de entender.

Vamos para implementação

Para exemplificar, vamos criar um Accordion. Ele terá vários itens, cada um representando um painel que pode ser aberto ou fechado individualmente.

Este código mostra como criar um contexto para o Accordion,
fornecer um contexto com o provedor e usar o contexto nos componentes filho para controlar o estado do Accordion
e seu conteúdo dinamicamente.

Usando Context API ou cloneElement:

Para que essas peças funcionem bem juntas, podemos usar o Context API do React ou cloneElement para compartilhar informações entre o componente Accordion e suas partes. Por exemplo, podemos usar o Context API para compartilhar informações sobre qual painel está ativo. Assim, cada parte do componente Accordion pode acessar essa informação e exibir o estado correto.

Benefícios do Padrão Compound Components:

- Flexibilidade: Os componentes podem ser combinados e reorganizados de forma flexível.
- Divisão de Responsabilidades: Cada peça do componente tem sua própria responsabilidade, facilitando a manutenção e o entendimento do código.
- Reutilização: As peças individuais podem ser usadas em diferentes contextos, o que torna o desenvolvimento mais eficiente.

Conclusão:

O padrão Compound Component, é como ter um conjunto de ferramentas que torna o desenvolvimento no React mais intuitivo e divertido. Ao separar as peças de um componente complexo, criamos uma arquitetura mais modular e fácil de entender. Experimente aplicar esse padrão nos seus projetos e aproveite as vantagens de componentes mais flexíveis, reutilizáveis e divertidos de construir!

--

--

Rafael Ramires Nai
gb.tech
Writer for

Desenvolvedor Front-end Web/ Mobile e Tech Lead no Grupo Boticário