🅰️ Capítulo 01: Introdução ao Angular Standalone, Angular CLI e Arquitetura SPA
🎯 Objetivos da Aula
Ao final desta aula, você será capaz de:
- Compreender o funcionamento do Angular como um framework completo (batteries-included) para desenvolvimento de SPAs corporativas.
- Identificar a evolução para a arquitetura Angular Standalone, que elimina a necessidade de declaração em
NgModule. - Instalar e utilizar a ferramenta de linha de comando Angular CLI (
ng) para criação e inicialização de projetos. - Executar o servidor de desenvolvimento local com
ng servee entender a estrutura de pastas gerada.
🧠 1. O que é o Angular Standalone?
O Angular é um framework frontend mantido pelo Google para a criação de aplicações web de página única (Single Page Applications — SPAs). Na arquitetura moderna Angular Standalone, todo componente é independente, declarando diretamente suas próprias dependências na propriedade @Component({ standalone: true, imports: [...] }).
flowchart TD subgraph AngularApp ["Aplicação Angular Standalone"] RootComp["AppComponent (Componente Raiz)"] --> HeaderComp["HeaderComponent (Standalone)"] RootComp --> SidebarComp["SidebarComponent (Standalone)"] RootComp --> MainComp["DashboardComponent (Standalone)"] MainComp --> ServiceHTTP["AlunoService (HttpClient)"] end style RootComp fill:#e3f2fd,stroke:#1e88e5 style MainComp fill:#e8f5e9,stroke:#2e7d32
Vantagens do Angular Standalone:
- Menos Código Boilerplate: Não exige a criação e manutenção de arquivos
app.module.ts. - Carregamento sob Demanda (Lazy Loading) Simplificado: Rotas podem carregar componentes standalone diretamente sem carregar módulos inteiros.
- Tree-Shaking Aprimorado: O compilador do Angular consegue remover todo o código não utilizado, reduzindo o tamanho final do pacote em produção.
💻 2. Prática Guiada: Criando um Projeto Angular Standalone com a CLI
1. Instalação da Angular CLI Globalmente:
# Instalar a CLI oficial do Angular
$ npm install -g @angular/cli
# Verificar a versão instalada
$ ng version2. Inicialização de Projeto Standalone:
# Criar novo projeto Angular Standalone
$ ng new portal-academico --standalone --style=css --ssr=false
# Navegar para o diretório do projeto
$ cd portal-academico
# Iniciar o servidor local com recarregamento automático (Hot Reload)
$ ng serve --openO aplicativo será compilado e aberto automaticamente no navegador no endereço http://localhost:4200/.
💻 3. Anatomia do Primeiro Componente Standalone (app.component.ts)
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
standalone: true,
imports: [],
template: `
<header class="cabeçalho">
<h1>{{ tituloPortal }}</h1>
<p>Status da Plataforma: <strong>{{ statusSistema }}</strong></p>
</header>
`,
styles: [`
.cabeçalho {
background-color: #0d47a1;
color: #ffffff;
padding: 24px;
font-family: Arial, sans-serif;
}
h1 { margin-bottom: 8px; }
`]
})
export class AppComponent {
public tituloPortal: string = 'Portal de Gestão Escolar (Angular Standalone)';
public statusSistema: string = 'OPERACIONAL';
}⚔️ 4. Desafios Práticos (Exercícios 30/50/20)
🥉 Nível Bronze (Fixação)
- Qual a principal diferença entre a arquitetura tradicional baseada em
NgModulee a nova arquitetura Angular Standalone? - Para que serve o comando
ng serve --openna Angular CLI?
🥈 Nível Prata (Aplicação)
- Modifique o componente
AppComponentcriado no exemplo acima para incluir uma propriedadeversaoFramework: string = '17+'e exiba essa propriedade no template HTML usando a interpolação{{ versaoFramework }}.
🥇 Nível Ouro (Desafio)
- Crie um novo componente standalone usando a Angular CLI com o comando
ng generate component componentes/cabecalho(oung g c componentes/cabecalho) e adicione-o ao arrayimportsdoAppComponentpara exibi-lo na tela.
💡 Gabaritos Sanfonados de Resposta
💡 Ver Gabarito do Nível Bronze
- A arquitetura Standalone permite criar componentes, diretivas e pipes que declaram suas próprias dependências diretamente no decorator
@Component, eliminando a necessidade de registrar arquivos de móduloapp.module.ts. - O comando
ng servecompila a aplicação em memória, inicia um servidor HTTP local na porta4200e o parâmetro--openabre automaticamente a página no navegador padrão.
💡 Ver Gabarito do Nível Prata & Ouro (Código Angular)
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
standalone: true,
template: `
<main style="padding: 20px; font-family: sans-serif;">
<h1>{{ tituloPortal }}</h1>
<p>Versão do Framework: {{ versaoFramework }}</p>
</main>
`
})
export class AppComponent {
tituloPortal = 'Portal de Cadastro de Alunos';
versaoFramework = 'Angular 17+ Standalone';
}📚 Referências Teóricas Oficiais
- ANGULAR OFFICIAL DOCUMENTATION. Getting Started with Standalone Components (https://angular.dev/guide/components/importing).
- ANGULAR CLI REFERENCE. ng serve Command Options.
⬅️ Voltar ao Sumário da Fase 06 | Próximo Capítulo (Estrutura de Componentes Standalone) ➡️