🚀 Capítulo 08: Ciclo de Vida do Componente
🎯 Objetivo da Aula
Ao final desta aula, você entenderá o ciclo de vida de um componente no Angular e saberá como usar os “Hooks” (ganchos) como ngOnInit e ngOnDestroy para executar código no momento exato em que o componente nasce e morre na tela.
🏢 O Cenário Prático (Seu Desafio)
Os computadores de uma nave não ficam processando tudo o tempo todo. Eles ligam os sistemas de navegação apenas quando você entra na nave e desligam para economizar energia quando você sai. Seu desafio é usar os ciclos de vida para ligar o radar no momento certo e limpá-lo ao desligar!
🧠 Fundamentos: A Teoria Traduzida
Desde o momento em que o Angular cria um componente até o momento em que ele o remove da tela, o componente passa por várias fases. O Angular nos avisa dessas fases através de funções especiais chamadas Lifecycle Hooks.
As duas fases mais importantes para quem está começando são:
1. ngOnInit (O Nascimento)
É executado apenas uma vez, logo após o componente ser criado na tela. É o lugar perfeito para buscar dados de um banco de dados ou inicializar variáveis.
- Analogia: É a rotina de boot do sistema da nave quando você aperta o botão de ligar.
2. ngOnDestroy (A Morte)
É executado logo antes de o componente sumir da tela (por exemplo, se o usuário mudar de página ou um *ngIf esconder o elemento). É usado para limpar a memória e parar processos que estavam rodando.
- Analogia: É a rotina de desligamento seguro da nave para não queimar os circuitos.
📖 Exemplo Guiado: Inicializando o Radar
Vamos usar o ngOnInit para carregar a lista de planetas automaticamente.
🛠️ Passo a Passo (TypeScript)
Abra src/app/painel-controle/painel-controle.component.ts.
- Faça a classe implementar o
OnInit:
import { Component, OnInit } from '@angular/core';
@Component({ /* ... */ })
export class PainelControleComponent implements OnInit {
planetas: string[] = [];
// Executa automaticamente quando o componente nasce
ngOnInit(): void {
console.log('📡 Radar ligado! Buscando planetas...');
this.planetas = ['Coruscant', 'Mustafar', 'Kamino'];
}
}🕹️ Como Executar e Testar no VS Code
- Salve o arquivo e abra o navegador.
- Abra o Console do Desenvolvedor (F12 no teclado e clique na aba Console).
- Você verá a mensagem ”📡 Radar ligado! Buscando planetas…” impressa lá, provando que o código rodou sozinho ao iniciar!
🛠️ Prática Obrigatória 1
No mesmo componente, use o hook ngOnDestroy para exibir no console a mensagem: ”🔴 Sistemas do Painel Desligados!“.
(Nota: Para testar, você precisará usar um *ngIf no componente pai para fazer o painel sumir da tela!).
🛠️ Prática Obrigatória 2
Mova a inicialização da variável nomePiloto (que fizemos no Capítulo 3) para dentro do ngOnInit. Em vez de definir o valor na criação da variável, crie-a vazia e defina this.nomePiloto = 'Han Solo'; dentro do ngOnInit.
🔑 Gabarito de Código/Fórmulas
Prática 1:
No .ts:
import { Component, OnInit, OnDestroy } from '@angular/core';
export class PainelControleComponent implements OnInit, OnDestroy {
ngOnInit(): void {
// ...
}
ngOnDestroy(): void {
console.log('🔴 Sistemas do Painel Desligados!');
}
}Prática 2:
No .ts:
export class PainelControleComponent implements OnInit {
nomePiloto: string = '';
ngOnInit(): void {
this.nomePiloto = 'Han Solo';
}
}