Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 为什么我们要在子组件中使用changeDetection onPush策略,其中有maked事件?_Angular_Angular2 Changedetection - Fatal编程技术网

Angular 为什么我们要在子组件中使用changeDetection onPush策略,其中有maked事件?

Angular 为什么我们要在子组件中使用changeDetection onPush策略,其中有maked事件?,angular,angular2-changedetection,Angular,Angular2 Changedetection,我学习了变化检测策略——onPush,从那以后,今天我在youtube上看到了这段视频 Minko在这里解释更快的角度应用 从7:45到11:20他是这么说的- 当我们有两个组件时,例如应用程序组件(父级)和员工列表组件(子级) 在子组件中,我们有keydown事件的输入,这使得CD-change检测重新运行。这是正确的。他说,对于更快的angular应用程序,我们应该使用onPush策略,他在子组件中使用了这一策略——但从父-应用程序组件中,他现在发送的是不可变的js列表,因此它们将是新的引

我学习了变化检测策略——onPush,从那以后,今天我在youtube上看到了这段视频

Minko在这里解释更快的角度应用

从7:45到11:20他是这么说的-

当我们有两个组件时,例如应用程序组件(父级)和员工列表组件(子级) 在子组件中,我们有keydown事件的输入,这使得CD-change检测重新运行。这是正确的。他说,对于更快的angular应用程序,我们应该使用onPush策略,他在子组件中使用了这一策略——但从父-应用程序组件中,他现在发送的是不可变的js列表,因此它们将是新的引用——使用onPush更改检测,我们需要将新引用发送到子组件的输入,这样它才会运行。但我不明白

在14:40,我们可以看到,即使在输入时,再次键入keydown事件,子组件也会被调用,但新数据不会从父组件发送到子组件,因为当我们只键入keydown事件时,但是我们没有按enter键将输入中的新event.target.value添加到数组中,这意味着子组件中的输入属性仍然没有更改


那么,在这种情况下,当changeDetection onPush没有帮助时,他为什么要使用它呢?

因此,答案是——通过这种优化,当调用子组件中的计算方法时——他只被调用用于销售,而不是用于研发部门