1
resposta

Duvida RouterModule

Eu tenho uma dúvida.

No treinamento foi dito que o módulo HomeModule, não precisaria importar o módulo RouterModule, pois o mesmo era exportado no AppRoutingModule, e como o AppModule(modulo raiz) importa ambos, todos os módulos que estão sendo importados terão acesso ao RouterModule automaticamente.

Porém quando foi usado a diretiva "routerLink" o erro aconteceu, e foi obrigado importar o RouterModule no módulo CoreModule, mesmo o CoreModule sendo importado também no módulo raiz(AppModule).

Por que isso aontece?

1 resposta

Fala ai Fernando, tudo bem? Bom, vamos lá:

Por que isso aontece?

Quando a gente faz o exports os mesmos poderão ser usados e acessados no template de qualquer componente que é parte do módulo que está importando outro módulo.

Exemplo:

No seu caso, você tem o AppModule que está importando AppRoutingModule e HomeModule. Então, todos os exports de AppRoutingModule e HomeModule estarão disponíveis para o AppModule.

Basicamente o exports torna público para o módulo pai e não módulo irmãos.

Para módulos irmãos a gente vai precisar re-importar as dependências.

Obs: É uma boa prática que todo módulo do Angular faça importação do que precisa para funcionar, independe se precisa ou não. Os módulos podem ser declarados N vezes. Assim a gente bate o olho no módulo e conhece suas dependências, além claro de evitar problemas como esse.

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software