Мне трудно понять, каковы лучшие практики для Angular.
У меня возникла следующая проблема:
<div>
<app-child [data]="data | async">
</app-child>
</div>
Должен ли я сделать следующее:
A: Используйте свойства Backing для обновления соответствующего значения
class ChildComponent{
@Input
set data(value){
this._data =value;
this.label = this.labelService.getLabelColor(value.warningperiod)
}
get data(){ return this._data}
_data: object;
labelColor:string
// constuctor...
}
B: использовать Observables и подписки
<div>
<!-- pass down the whole observable -->
<app-child [data]="data">
</app-child>
</div>
class ChildComponent implements OnInit{
@Input data: Observable<object>;
labelColor: String;
onInit(){
this.data
.subscribe( value =>{
this.labemColor= this.labelService
.getLabelColor(value.warningPeriod)
})
}
//constructor
}
Что лучше?
Когда я подписываюсь, мне нужно отписаться, и это «раздражает».
В какой ситуации я должен делать что?