Should use ChangeDetectionStrategy.OnPush for eveything?

后端 未结 3 1787
感动是毒
感动是毒 2021-01-18 09:41

As the title says: I\'m working on a very big project and in few components I\'ve used ChangeDetectionStrategy.OnPush to avoid bad performances. I was wondering

3条回答
  •  终归单人心
    2021-01-18 10:18

    ChangeDetectionStrategy.OnPush tells Angular that the component only depends on its @Inputs() and needs to be checked only in the following cases:

    The Input reference changes.

    An event originated from the component or one of its children.

    We run change detection explicitly.

    So it depends from your component's content and what you are trying to achieve with it. For example if you are using async pipe for your subscriptions, your component doesn't need ChangeDetectionStrategy.OnPush, because async will do the job automatically. If your component big and uses a lot of data changes, it should contain OnPush strategy, because it will increase your performance, so your whole component code will not run on every changes. If your component small and has only a few properties and methods, or it doesn't contain any subscription or @Input's, or doesn't do any data changes that will happen often, you don't need ChangeDetectionStrategy.OnPush

提交回复
热议问题