Introdução aos Módulos no Angular
Imagine construir um aplicativo. No início, é apenas um único arquivo — como main.ts
. Mas, à medida que você avança, começa a adicionar mais: componentes, serviços, estilos, lógica, manipulação de dados, autenticação e assim por diante.
Cedo ou tarde, as coisas começam a ficar confusas — fica difícil saber o que está sendo usado onde ou como tudo se conecta.
É nesse momento que a modularidade se torna sua melhor aliada.
O que é um Módulo no Angular?
Um módulo é uma forma de agrupar partes relacionadas do seu aplicativo em blocos separados e gerenciáveis, que são fáceis de manter, reutilizar e testar.
Pense em um módulo como uma caixa onde você guarda tudo relacionado a uma funcionalidade específica. Por exemplo, todos os itens relacionados a usuários podem ser colocados em um UserModule
.
No Angular, um módulo é apenas uma classe marcada com o decorador @NgModule
, assim:
app-component.ts
Veja o que cada parte faz:
-
declarations
– lista os componentes, diretivas e pipes que pertencem a este módulo; -
imports
– importa outros módulos dos quais este depende (comoBrowserModule
para acesso ao DOM); -
providers
– declara os serviços (para injeção de dependência) disponíveis neste módulo; -
bootstrap
– define o componente principal a ser carregado quando o aplicativo inicia (geralmenteAppComponent
).
Basicamente, um módulo define o que recebe (suas dependências), o que disponibiliza para outros módulos, entre outros aspectos.
Quaisquer componentes que interajam com este módulo podem usar os serviços e outros recursos que ele fornece.
Por que Não Estamos Usando Módulos Agora
A partir do Angular 14, existe uma nova alternativa — componentes standalone.
Eles permitem criar e utilizar um componente sem precisar adicioná-lo a um módulo. Na verdade, já estamos utilizando esses componentes ao longo do nosso projeto, e eles se parecem com isto:
task-component.ts
Este é um componente standalone — o que significa que não precisa ser listado em nenhum NgModule nas declarações. Em vez disso, tudo o que ele precisa (como diretivas, pipes ou outros módulos) é importado diretamente pela propriedade imports dentro do próprio componente.
Isso torna a estrutura do projeto mais leve e flexível — especialmente útil para aplicações pequenas ou blocos de funcionalidades isoladas.
Exploraremos componentes autônomos com mais detalhes posteriormente nesta seção.
Embora projetos Angular mais recentes não exijam módulos, você ainda irá encontrá-los com frequência:
-
Aplicações corporativas antigas são totalmente construídas usando módulos;
-
Muitos tutoriais, documentações e exemplos ainda são escritos com
NgModule
; -
Algumas bibliotecas de terceiros e frameworks de UI ainda utilizam a abordagem baseada em módulos.
Por isso, dedicaremos um tempo para aprender como o NgModule
funciona — assim você poderá ler e manter bases de código antigas com confiança.
1. Qual é o principal objetivo de um módulo no Angular?
2. O que geralmente está incluído no decorador @NgModule
?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.13
Introdução aos Módulos no Angular
Deslize para mostrar o menu
Imagine construir um aplicativo. No início, é apenas um único arquivo — como main.ts
. Mas, à medida que você avança, começa a adicionar mais: componentes, serviços, estilos, lógica, manipulação de dados, autenticação e assim por diante.
Cedo ou tarde, as coisas começam a ficar confusas — fica difícil saber o que está sendo usado onde ou como tudo se conecta.
É nesse momento que a modularidade se torna sua melhor aliada.
O que é um Módulo no Angular?
Um módulo é uma forma de agrupar partes relacionadas do seu aplicativo em blocos separados e gerenciáveis, que são fáceis de manter, reutilizar e testar.
Pense em um módulo como uma caixa onde você guarda tudo relacionado a uma funcionalidade específica. Por exemplo, todos os itens relacionados a usuários podem ser colocados em um UserModule
.
No Angular, um módulo é apenas uma classe marcada com o decorador @NgModule
, assim:
app-component.ts
Veja o que cada parte faz:
-
declarations
– lista os componentes, diretivas e pipes que pertencem a este módulo; -
imports
– importa outros módulos dos quais este depende (comoBrowserModule
para acesso ao DOM); -
providers
– declara os serviços (para injeção de dependência) disponíveis neste módulo; -
bootstrap
– define o componente principal a ser carregado quando o aplicativo inicia (geralmenteAppComponent
).
Basicamente, um módulo define o que recebe (suas dependências), o que disponibiliza para outros módulos, entre outros aspectos.
Quaisquer componentes que interajam com este módulo podem usar os serviços e outros recursos que ele fornece.
Por que Não Estamos Usando Módulos Agora
A partir do Angular 14, existe uma nova alternativa — componentes standalone.
Eles permitem criar e utilizar um componente sem precisar adicioná-lo a um módulo. Na verdade, já estamos utilizando esses componentes ao longo do nosso projeto, e eles se parecem com isto:
task-component.ts
Este é um componente standalone — o que significa que não precisa ser listado em nenhum NgModule nas declarações. Em vez disso, tudo o que ele precisa (como diretivas, pipes ou outros módulos) é importado diretamente pela propriedade imports dentro do próprio componente.
Isso torna a estrutura do projeto mais leve e flexível — especialmente útil para aplicações pequenas ou blocos de funcionalidades isoladas.
Exploraremos componentes autônomos com mais detalhes posteriormente nesta seção.
Embora projetos Angular mais recentes não exijam módulos, você ainda irá encontrá-los com frequência:
-
Aplicações corporativas antigas são totalmente construídas usando módulos;
-
Muitos tutoriais, documentações e exemplos ainda são escritos com
NgModule
; -
Algumas bibliotecas de terceiros e frameworks de UI ainda utilizam a abordagem baseada em módulos.
Por isso, dedicaremos um tempo para aprender como o NgModule
funciona — assim você poderá ler e manter bases de código antigas com confiança.
1. Qual é o principal objetivo de um módulo no Angular?
2. O que geralmente está incluído no decorador @NgModule
?
Obrigado pelo seu feedback!