Components
A component is one screen piece: decorator @Component, a class, a template. selector: 'app-student-card' lets you write <app-student-card> in a parent.
Inputs come in with @Input(). Outputs go out with @Output() EventEmitter. Parent owns the data. Child displays and asks. Don’t let the child rewrite the parent’s array in place.
Board: <app-student-card [student]="row" (save)="onSave($event)">. That is components talking. Trap: one giant AppComponent with 400 lines of HTML.
Parent
│ [student]
▼
StudentCard
│ (save)
▼
Parent.onSaveExam tip
Selector + @Input/@Output. Parent owns data.