---
name: angular-performance
description: >
Angular performance: NgOptimizedImage, @defer, lazy loading, SSR.
Trigger: When optimizing Angular app performance, images, or lazy loading.
metadata:
author: gentleman-programming
version: "1.0"
---
## NgOptimizedImage (REQUIRED for images)
```typescript
import { NgOptimizedImage } from '@angular/common';
@Component({
imports: [NgOptimizedImage],
template: `
`
})
```
### Rules
- ALWAYS set `width` and `height` (or `fill`)
- Add `priority` to LCP (Largest Contentful Paint) image
- Use `ngSrc` not `src`
- Parent of `fill` image must have `position: relative/fixed/absolute`
---
## @defer - Lazy Components
```html
@defer (on viewport) {
Placeholder shown immediately
} @loading (minimum 200ms) {Failed to load
} ``` ### Triggers | Trigger | When to Use | |---------|-------------| | `on viewport` | Below the fold content | | `on interaction` | Load on click/focus/hover | | `on idle` | Load when browser is idle | | `on timer(500ms)` | Load after delay | | `when condition` | Load when expression is true | ```html @defer (on viewport; on interaction) {