Angular9 min read
Structural Directives: *ngFor (Render Lists)
Loop through arrays and display lists using *ngFor, plus trackBy for performance.
Lucas Morgan
July 28, 2025
4.2k178
*ngFor renders an element for each item in an array.
Basic list rendering
<ul>
<li *ngFor="let skill of skills">{{ skill }}</li>
</ul>
export class SkillsComponent {
skills = ['HTML', 'CSS', 'TypeScript', 'Angular'];
}
Getting index
<li *ngFor="let skill of skills; let i = index">
{{ i + 1 }}. {{ skill }}
</li>
trackBy (important for performance)
If your list updates often, trackBy helps Angular avoid re-rendering everything.
<li *ngFor="let user of users; trackBy: trackById">
{{ user.name }}
</li>
export class UsersComponent {
users = [
{ id: 1, name: 'Emma' },
{ id: 2, name: 'David' },
];
trackById(_: number, item: { id: number }) {
return item.id;
}
}
Next: Attribute directives like [ngClass] and [ngStyle].
#Angular#Directives#Beginner