这网站说:
在默认的变化检测策略中,无论何时@ run ()数据被更改或修改,角都会运行变化检测器。
但实际上,只有在以下三种情况下才会触发更改检测(正如同一站点之前所说的那样):
因此(与开始时的语句不同),当@Input更改时(但仅在给定的三个条件下),不运行更改检测。它的在执行的变更检测时,必须检测到@输入的变更。我说的对吗?
此外,当输入只能在上述三种条件下更改时,为什么@Input会触发更改检测,而对于这三种条件,我们已经触发了更改检测。在@Input变更上单独触发变更检测似乎是多余的
发布于 2022-03-21 17:53:15
变化检测器和变化检测不是一回事。您是对的,更改检测将在这三个条件下运行,但这只意味着它将检查所有组件,如果需要重新修改它们。
因此,如果Input()数据与上一次执行更改检测时相比发生了变化,则该组件将被标记为脏,并将其重新命名。但是,如果之前的更改检测周期中的组件没有任何更改(因此输入具有相同的值),组件将不会被重新命名(更改检测器将不会运行)
https://stackoverflow.com/questions/71560818
复制相似问题