trackBy for List Rendering
Explain how trackBy (and @for's mandatory track) prevents unnecessary DOM node recreation when rendering lists.
Without a tracking mechanism, when the array bound to a list renders a new set of objects (even if many represent the exact same underlying data), Angular's default behavior falls back to comparing by object identity, and if the array reference itself changed (a very common pattern, especially with immutable state updates), Angular has no way to know that "item at index 3" in the new array is conceptually the same as "item at index 3" in the old array unless you tell it how to identify sameness — which is exactly what trackBy (for *ngFor) or the mandatory track expression (for @for) provides.
Without trackBy, updating a seating chart means tearing down and rebuilding every chair in the room from scratch even if only one guest left; with trackBy, each chair has a nameplate, so the room can simply remove one chair and leave everyone else's exactly where they were sitting.