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?