Data flows downbeginner
A component receives everything it needs as props and renders it — which is what lets the same card show a laptop on one page and a desk on another without being rewritten.
A product card assembled from three standalone components. Nothing has state; everything arrives as an input. The React sprint calls these props.
The card is composed of the other two components, and every value on it came from an input.
Published in full, before you start — every point is one of these and there is nothing else.
A component receives everything it needs as props and renders it — which is what lets the same card show a laptop on one page and a desk on another without being rewritten.
A component that does not know what goes inside it is one you reuse; a component that hardcodes its contents is one you copy — and children is the prop that makes the difference.
Standalone components declare what they need instead of belonging to an NgModule, and inject() gets a dependency without a constructor parameter — together they are most of what changed in modern Angular.
The @if and @for blocks replaced *ngIf and *ngFor, and the track expression is what stops Angular rebuilding every row when one of them changes.