Pular para conteúdo

Aula 06: Serviços e Injeção de Dependência 💉

Organizando a Lógica do Projeto


🏛️ O que é um Serviço?

É o "motor" da sua aplicação.

  • Contém lógica de negócio
  • Falar com APIs
  • Compartilha dados entre componentes

🏢 Por que não usar o Componente?

O componente deve cuidar apenas da "casca" (UI).

Lógica complexa em componentes torna o código difícil de manter e testar.


🛠️ Gerando um Serviço

ng generate service meu-servico
# ou
ng g s meu-servico

💉 Injeção de Dependência (DI)

O Angular gerencia as instâncias para você.

Você apenas pede o serviço no construtor!


🗝️ Decorator @Injectable

Avisa ao Angular que esta classe é um serviço.

providedIn: 'root' garante que o serviço seja um Singleton.


☝️ O Singleton

Significa que existe apenas uma única instância do serviço rodando.

Se o Componente A altera um dado no serviço, o Componente B verá a mudança imediatamente!


🛠️ Como Injetar?

No construtor do componente:

constructor(private servico: MeuServico) {}
  • O Angular resolve a dependência automaticamente.

📊 Benefícios da DI

  • Facilita Testes Unitários
  • Desacopla o código
  • Gestão de memória eficiente

🎯 Prática

Vamos criar um serviço de "Carrinho de Compras" que funciona em toda a aplicação!


❓ Alguma dúvida?

Vamos injetar essa lógica! 🚀