3
respostas

Imports, Exports, Schemas e Declarations no Angular

Já vi alguns curso do Angular, mas ainda estou confuso para usar os Imports, Exports, Shemas e Declarations.

Sei que conforme o projeto vai crescendo, a melhor maneira pra manutenção é modularizar.

Mas não entendi, módulos tenho que exportar? Como usar um componente de outro módulo em vários outros componentes, tem que fazer no Declarations?!

Se puderem esclarecer a diferença entre eles.

3 respostas

Fala ai Matias, tudo bem? Vamos lá:

Mas não entendi, módulos tenho que exportar?

Você precisa exportar os módulos que precisam ser públicos para o módulo que importar seu módulo (ficou confuso, mas calma).

Imagine que o módulo A e B precisam do módulo C.

Então podemos ir nos módulos A e B e importar o C.

Mas, imagine que o módulo B é importado e utilizado pelo módulo A, sendo assim, a gente pode importar o módulo C no módulo B e torná-lo acessível para o módulo A através do exports.

Ou seja, o exports serve para a gente tornar algo interno público e acessível para o módulo que esta importando.

Como usar um componente de outro módulo em vários outros componentes, tem que fazer no Declarations?!

Não é possível declarar mais de um componente um mais de um módulo, se você fizer isso o Angular vai dar erro.

Uma forma de resolver esse problema é criar um SharedModule que vai importar os componentes compartilhados e importar o módulo nos outros módulos que precisam desses componentes comuns.

Espero ter ajudado.

Não é possível declarar mais de um componente um mais de um módulo, se você fizer isso o Angular vai dar erro.

Se eu precisar usar um componente em mais de um módulo, tenho que fazer um módulo compartilhado?

Se o componente do Módulo A for exportado, ele pode ser usando em vários outros módulos (Usados no Módulo B,C)?

Fala ai Matias, vamos la:

Se eu precisar usar um componente em mais de um módulo, tenho que fazer um módulo compartilhado?

Exatamente.

Se o componente do Módulo A for exportado, ele pode ser usando em vários outros módulos (Usados no Módulo B,C)?

Sim

Espero ter ajudado.