接收到剩余数据后,我应该使用哪种生命周期方法来创建子组件?
Which lifecycle method should I use to create child components after receive rest data?
我有一个 "Angular2" 组件 "ItemBoard",它是 "Item" 个组件的容器。我需要先通过远程服务获取购物车数据并使用它来创建项目。我想知道 ItemBoard 中的哪个生命周期方法应该用于此操作?
ngOnChanges()
ngOnInit()
ngDoCheck()
@Component(selector: '[itemBoard]', templateUrl: "itemBoard.html", directives: const [Item], viewProviders: const [CartService])
class ItemBoard {
List cartItems= [];
ItemBoard(){}
}
@Component(selector: '[item]', templateUrl: "item.html", directives: const [Item])
class ItemBoard {
@Input() List cartItems;
}
如果您只是更改绑定 ngFor
、ngIf
、ngSwitch
、[prop]="field"
所使用的数据,...您不必关心生命周期钩子。只需更新数据,Angular 会处理剩下的事情。
如果您在 Angular 创建绑定之前更新数据,Angular 甚至不会注意到,否则更改检测会负责更新视图。
为避免重复工作,请尝试尽早进行更新,并且只在必要时进行更新。
如果有重复更新,收集更新并立即更新 Angular 与收集到的更改绑定的字段可能会有所帮助。
可以通过将默认更改检测策略更改为 onPush
来简化此策略,然后在应用 "all" 更改时通知 Angular 以及 Angular 更新视图的时间( ).
如果您使用 ElementRef
或类似的方式修改 DOM,ngAfterViewInit()
是正确的生命周期挂钩 https://angular.io/docs/ts/latest/api/core/AfterViewInit-interface.html
让 Angular 完成视图创建,然后添加您的自定义项。
我有一个 "Angular2" 组件 "ItemBoard",它是 "Item" 个组件的容器。我需要先通过远程服务获取购物车数据并使用它来创建项目。我想知道 ItemBoard 中的哪个生命周期方法应该用于此操作?
ngOnChanges()
ngOnInit()
ngDoCheck()
@Component(selector: '[itemBoard]', templateUrl: "itemBoard.html", directives: const [Item], viewProviders: const [CartService])
class ItemBoard {
List cartItems= [];
ItemBoard(){}
}
@Component(selector: '[item]', templateUrl: "item.html", directives: const [Item])
class ItemBoard {
@Input() List cartItems;
}
如果您只是更改绑定 ngFor
、ngIf
、ngSwitch
、[prop]="field"
所使用的数据,...您不必关心生命周期钩子。只需更新数据,Angular 会处理剩下的事情。
如果您在 Angular 创建绑定之前更新数据,Angular 甚至不会注意到,否则更改检测会负责更新视图。
为避免重复工作,请尝试尽早进行更新,并且只在必要时进行更新。
如果有重复更新,收集更新并立即更新 Angular 与收集到的更改绑定的字段可能会有所帮助。
可以通过将默认更改检测策略更改为 onPush
来简化此策略,然后在应用 "all" 更改时通知 Angular 以及 Angular 更新视图的时间(
如果您使用 ElementRef
或类似的方式修改 DOM,ngAfterViewInit()
是正确的生命周期挂钩 https://angular.io/docs/ts/latest/api/core/AfterViewInit-interface.html
让 Angular 完成视图创建,然后添加您的自定义项。