私は誰かがこれについて詳しく説明できるかどうか疑問に思います。セッターを使用して@Input()
と@Input()
を使用すると、変化検出に関して異なる動作をしますか?例えば角2、セッターの@Inputはセッターのない@Inputとは異なる動作をしますか?
:
@Input() something: SomeType;
-vs-
private _something;
@Input() set something(something: SomeType) {
this._something = something;
}
get something(): SomeType {
return this._something;
}
明らかな差はセッター/ゲッターは、いくつかの余分なロジックを@Input()
可能にすることです。しかし、これはセッターなしで@Input()
を使用する場合とは異なる方法で変化の検出に影響しますか?
「あなたがいることを持っている場合は、角度は開発モードでは、既知のエラーを(スローされます) "set関数内の' setTimeout() 'や' this.changeDetectorRef.detectChanges(); 'のようなものは常にそのエラーを投げますか? –
いいえ、実際には投げないようにします。しかし、テンプレート内でセッター内で使用される別のプロパティを設定した場合、そのエラーが発生する大きな可能性があります。 – PierreDuc