2016-11-13 11 views
14

コンポーネント/指令入力が変更された後にコードを実行する場合は、セッターまたはngOnChangesフックを使用できますが、どちらか一方を使用する利点はありますか?それとも、まったく同じものですか? ngOnChanges()角2セッター対ngOnChanges

@Input() 
    set someInput(val) { 
    this.runSomething(); 
    } 

    ngOnChanges(changes) { 
    this.runSomething(); 
    } 

答えて

9

一つの利点は、あなたのコンポーネントがいくつか@Input()秒を持っている場合、一度にすべての変更を取得することです。
あなたのコードがただ1つの@Input()に依存する場合は、おそらくセッターが良い方法でしょう。

+0

しかし、コンポーネントに多くの入力がある場合、 'ngOnChanges'メソッドはいくつかの無関係なものの場所になりませんか? –

+0

それは私が "あなたのコードがただ一つの' @Input() '...に依存しているということです。単一の特定の入力が変更されたときに実行されるコードがあれば、入力をセッターにするほうがおそらく良い方法です。 –

+0

良い答え。ですから、@inputがセッターとして使われるときにngOnchangesは呼び出されないことを理解しています。 – anonymous

関連する問題