Aprenda como criar componentes universais para que possam ser usados em qualquer lugar
formato
do dado, isso geralmente acontece quando o componente é
feito para ser usado em vários lugares diferentes (inclusive há possibilidade
entre usa-lo entre sites distintos) sem que seja necessário ler de alguma API
específica, ou seja, sem nenhuma dependência externa (a.k.a implicit
dependency).
Um exemplo de um componente universal é a
ProductShelf da loja Fashion,
vamos dar uma olhada nele;
Product
é um tipo criado por uma
entidade central no schema.org
. Uma outra forma possível de pensar nossa
ProductShelf seria escrever um
Inline Loader e fazer com que esse
inline loader leia os dados da API de um e-commerce em específico (e.g Shopify)
e só então renderizar a ProductShelf.
Isso é totalmente possível e factível, no entanto, deve-se atentar que quando
isso é feito, o nosso usuário de negócio perde a possibilidade de, por exemplo,
trocar a fonte de dados de Shopify para VTEX, o que é uma feature bastante
poderosa para evitar lock-in em uma plataforma especifica. Nesse sentido, um
component universal faz com que as dependencias nos tipo sejam invertidas, ao
invés do componente depender da API, na verdade o componente depende apenas do
formato
do dado e permite com que loaders
sejam implementados de forma a
retornarem esse tipo em comum, fazendo com que seja possível escolher o dado
loader ao configurar as propriedades do componente no Editor Admin.