[英]Should I call ngOnInit() again in Angular?
我是Angular的新手,这个问题可能听起来很愚蠢。 请多多包涵。
我已经定义了我的ngOnInit
如:
ngOnInit() {
this.rowData = this.studentService.getStudents();//Make http calls to populate data
}
在一个事件中,我再次调用ngOnInit,因为我需要重新加载数据:
onSomeEvent(){
this.ngOnInit();
}
这个可以吗? 或者如果ngOnInit()
是一种代价高昂的方法,我应该再写一行来再次调用http。
不,这不是一个好习惯。
更好的方法是从ngOnInit
调用一些方法,并在需要时重新调用相同的方法。 像这样-
ngOnInit() {
this.onLoad();
}
onLoad() {
this.rowData = this.studentService.getStudents();//Make http calls to populate data
}
onSomeEvent(){
this.onLoad();
}
更好的方法:
ngOnInit(){
this.loadData();
}
//load data
loadData(){
this.rowData = this.studentService.getStudents();
}
//on change event
ngOnChanges(){
this.loadData()
}
//capture data on other event
otherEvent(){
this.loadData()
}
ngOnInit
是在指令的数据绑定属性被初始化之后调用的生命周期钩子,因此第一次由angualr调用它自己,所以回想一下这种方法会让其他人感到困惑并签署不良代码,所以最好打破代码insn ngOnInit并在需要时调用againg。
ngOnInit() {
this.refrechItems();
}
public refrechItems(): void {
// magic things
}
你可以为所有其他生命周期钩子做同样的事情
请不要这样做! Angular有许多不同的Lifecycle钩子
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.