Start here. This is the direct spoken answer to practice first.
Overview
A loop needs stable item identity so Angular can update the right DOM and component instances.
Angular's @if, @for, and @switch blocks express dynamic template structure. In an @for, the track expression tells Angular which item from the new collection corresponds to which existing view. I normally track a stable domain key such as item.id; tracking by position is safe only when the collection is truly static and never reordered.