Open marcio opened 7 years ago
Será que nesse caso se encaixa também encapsular o uso de componente externo em um componente? Uma espécie de decorator?
Uma prática que já vi em alguns lugares é de usar um componente como um decorator para acessar funcionalidades de outro, com isso, caso o componente que é dependência precise ser substituído, o único que sofreria alterações seria o componente que decora o outro.
ex: Tenho um componente Select que encapsula o ReactSelect. Caso um dia queria trocar o ReactSelect por um outro, o único impactado é o Select.
Penso que nesse momento seria só os componentes básicos mesmo, para encapsular lógicas mais simples de validação (valido e inválido), input que só aceita números, etc. Um set de componentes de forms mais básico.
Acho num segundo momento até faz sentido encapsular algumas coisas, mas isso geralmente é muito trabalhoso de manter e acho muito difícil de um dia trocar um componente por outro, pois no caso do react select por ex, vamos ter que expor toda a api dele, se em um outro momento optarmos por outro select com uma api totalmente diferente, provavelmente teremos que mudar muita coisa para manter a legibilidade da dsl do componente.
Iria mais para o caminho de homologar os componentes de 3º.
Vamos analisar as possibilidades da criação de componentes para auxiliar a criação de formulários.
Provavelmente faça sentido ele ser quebrado em componentes menores, como Inputs, Selects, Textxarea, etc.
Não to pensando aqui num gerador de form, mas maneiras se simplificar o uso de necessidades comuns como campo com máscara, validação ao sair, etc...