Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Módulos não estão claros

Olá!

Não fica claro no curso a utilidade dos módulos. É um conceito bastante abstrato e acredito que precisaria ser mais aprofundado. Por exemplo, não consegui entender por que o HttpClientModule foi importado no app.module.ts e o FormsModule foi importado no home.module.ts Qual o critério para o local de importação? O que exatamente o módulo controla?

Além disso, por que o diretório "home" tem um routing e o diretório "autenticacao" não? Por que o diretório "login" não possui módulo nem routing? Por que o HttpClientModule não foi importado no módulo de autenticação?

Obrigado.

2 respostas
solução!

Olá Giovani, tudo bom?

Para que fique mais claro o por que do uso de módulos no Angular, entenda que um aplicação Angular precisa conter no mínimo um módulo, AppModule, e um componente,AppComponent. Os módulos são usados nas aplicações para modularizar a aplicação em partes, por exemplo no projeto GatitoBook, temos o HomeModule. Os componentes declarados neste módulo,

@NgModule({
  declarations: [
    HomeComponent,
    LoginComponent,
    NovoUsuarioComponent,
],

são responsáveis pela autenticação dos usuários. Os componentes deste módulo precisa do recurso de outros módulos para realizar essa funcionalidade. Para criar as telas de login e novo usuário, esses componentes precisam de um formulário, e o Angular tem um módulo para facilitar captura de valores dos campos e outros recursos, por isso importamos o FormsModule.

imports: [
    CommonModule,
    HomeRoutingModule,
    FormsModule,
    MensagemModule,
    ReactiveFormsModule,
],

O HomeRoutingModule é um módulo que possui as rotas e permite que os componentes crie meios de navegação, e esse para fazer isso também importa o RouterModule.

Agora vamos para o AppModule, o módulo raiz da aplicação. Ele é responsável por importar os módulos que serão usados em toda a aplicação, como é o caso do HttpClientModule, módulo é usado para enviar solicitações GET, POST, PUT, PATCH e DELETE para um servidor, e no GatitoBook alguns desses recursos são usados em serviços como o de AutenticacaoService. No AutenticacaoService usa o módulo por meio do HttpClient, biblioteca que só pode ser importada para o serviço ou componente(se for o caso) se o HttpClientModule for importado.

Ficou claro até aqui?

Certo, obrigado. Não ficou 100% claro, mas ajudou. O problema destes cursos é que são exemplos que são atirados sem explicar o conceito e a base de cada coisa. Até agora não sei o propósito de um módulo e de um componente, e nem a diferença entre um e outro.