如果要在组件/指令输入更改后运行某些代码,可以使用setter或ngOnChangeshook,但在另一个上使用one有什么好处?或者他们完全一样?
@Input()
set someInput( val ) {
this.runSomething();
}
ngOnChanges(changes) {
this.runSomething();
}
Run Code Online (Sandbox Code Playgroud)
Gün*_*uer 37
一个优点ngOnChanges()是,如果您的组件有多个@Input()s ,您可以立即获得所有更改.
如果你的代码只依赖于@Input()一个setter可能是更好的方法.
对于 setter,有一件重要的事情:用 setter 注入的 Pros 应该考虑顺序问题
<child [item1]="item1" [item2]="item2"></child>
<child [item2]="item2" [item1]="item1"></child>
// not same if you use setter
Run Code Online (Sandbox Code Playgroud)
因此,如果 item2 是 setter,item1 一些数据,并且您在 item2 中使用 item1,则它可以正常工作,因为 setter 调用时刻值集,一旦您相反地更改应用程序模板中的输入顺序,应用程序将严重崩溃,因为设置了 item2、item1 的时间是未定义的..
| 归档时间: |
|
| 查看次数: |
3992 次 |
| 最近记录: |