什么时候可以使用Angular onpush通知策略?

问题描述 投票:0回答:1

假设我们有一个类似下面的计数器组件,它知道如何改变它的状态,并且可以有一个触发increment()函数的按钮等。

    @Component({...})
    export class CounterComponent {

    @Input()
    count: number = 0;

    increment() {
        this.count++;
    }

    decrement() {
        this.count--;
    }

  }

这会使它与OnPush通知策略失去资格吗?换句话说,符合OnPush资格的组件必须不改变自己的状态。

javascript html angular
1个回答
1
投票

由于计数器是数字而不是对象,因此它的值将被复制到子组件。所以在里面改变它不会影响changeDetection机制。 Bacuse onpush trategy仅从父视角的输入值变化开始变化检测。因此,如果在组件内部更改计数器时需要视图反射 - 请使用默认更改策略。

© www.soinside.com 2019 - 2024. All rights reserved.