2016-09-13 6 views

答えて

1

いいえ、私はそれをお勧めしません。

角2の変化の検出は非常に高速です。小規模なプロジェクトをお持ちの場合、私はそれを使用することを迷惑にならないでしょう。

大きなプロジェクトをお持ちの場合、特定の「リーフ」コンポーネント(入力プロパティのみに依存するビューバインディングを持つリーフコンポーネント)でOnPushを使用する可能性があります。

caused the OnPush component to be change detectedがない場合、子コンポーネントのいずれもチェックされないため、子コンポーネントが自動的に検出されるのを防ぐことができます。したがって、私は通常、この問題を避けるためにリーフコンポーネントでしか使用しません。

入力プロパティにJavaScript参照型を使用すると、OnPushは、それらの参照型のプロパティに対する変更を検出しないことにも注意してください(たとえば、配列に要素を追加または削除する場合や、プロパティの値をオブジェクト。)あなたはバインディングコンポーネントでのエラーを防止するために、グローバルOnPush使用したい場合は

+2

リーフコンポーネントでないときに問題になるのはなぜですか? OnPushの目的は、変更検出を実行する必要のあるツリーを削除することではないのでしょうか? –

+0

こんにちは@GünterZöchbauer、あなたの意図がツリーの一部を切り取ることであるなら、それは正しいです、それは問題ではなくむしろ機能です。 (私は人々がこれを理解していないケースを見ているので、問題に陥ります。) –

+2

'OnPush'を正しく使うためには、変更検出をかなりうまく理解する必要があると思いますが、それがデフォルトではない唯一の理由です。そのAFAIKに加えて、Angular2チームは、アプリケーションをもっと速くするため、 'OnPush'を使うことを推奨しています。最初のAngular2プロジェクトを開始したときに、Angular2の仕組みをよく理解してから、OnPushで始めることはお勧めしません。 –

0

あなたは、これははるかに安全ルートになる変更を許可immutable.jsだろう「凍結」すべてのオブジェクトを使用していない可能性があり

関連する問題