Angular10 min read
Dependency Injection (DI) Explained Simply
Understand what DI is, why Angular uses it, and how providers work in modern Angular.
Megan Rivera
August 10, 2025
3.6k75
Dependency Injection sounds scary, but it is just a clean way of giving your class the tools it needs.
Real-world example
Instead of a component creating its own service:
- it would be stuck with one implementation
- harder to test
- harder to swap later
With DI, Angular creates the service and gives it to your component.
DI flow (picture)
flowchart TD
A[Angular Injector] --> B[Create UserService once]
B --> C[Inject into HeaderComponent]
B --> D[Inject into ProfileComponent]
Providers in modern Angular
Most services use:
@Injectable({ providedIn: 'root' })
That means:
- Angular creates one shared instance
- available everywhere
Advanced idea (quick mention)
You can provide a service at a component level (new instance per component tree) but start with root until you have a reason.
Next: Routing, creating pages and navigation.
#Angular#DI#Beginner