Aula 08: Standalone Components 📦
Nesta aula, entramos na era do Angular Moderno. Vamos aprender como criar componentes que não precisam mais de um NgModule para funcionar.
🆕 O que mudou no Angular 15+?
Historicamente, todo componente precisava estar declarado em um módulo. Com os Standalone Components, o componente se torna autossuficiente.
graph LR
A[Componente Clássico] --> B[NgModule]
B --> C[Aplicação]
D[Componente Standalone] --> E[Aplicação]
D -.-> |Importa diretamente| F[CommonModule/Outros]
🛠️ Anatomia de um Standalone Component
A principal diferença está no decorator @Component, onde adicionamos a propriedade standalone: true.
🚀 Iniciando a App sem Módulo
No Angular Moderno, o bootstrap da aplicação muda do módulo para o componente raiz diretamente usando bootstrapApplication.
Arquivo main.ts:
⚖️ Comparação: Clássico vs Standalone
| Característica | Clássico (NgModule) | Standalone (Moderno) |
|---|---|---|
| Declaração | Obrigatória no Module | Nenhuma (auto-gerido) |
| Imports | Feito no Module | Feito no próprio Componente |
| Complexidade | Alta (muitos arquivos) | Baixa (mais direto) |
| Performance | Padrão | Melhor (Tree-shaking) |
🛠️ Gerando no CLI
Dica
A partir de versões mais recentes, o Angular CLI pode ser configurado para que todos os componentes novos sejam standalone por padrão.
🚀 Prática: Primeiro Projeto Moderno
- Crie um novo componente usando a flag
--standalone. - Tente importar o
CommonModuledentro dele para usar o*ngIfe o*ngFor. - Note que você não precisou tocar no arquivo
app.module.ts!
🏁 Mini-Projeto da Aula
Refatore seu projeto da Aula 02 (que usava módulos) para usar apenas Standalone Components. Remova o arquivo app.module.ts e atualize o main.ts para usar o bootstrapApplication.