【问题标题】:Is there any way to find out what is triggering change detection in Angular 2?有什么方法可以找出在 Angular 2 中触发更改检测的原因是什么?
【发布时间】:2022-05-01 07:46:46
【问题描述】:

我最近发布了一个新组件,它似乎每秒会触发多次更改检测:

  // some debugging code
  ngDoCheck() {
    console.log('DO_CHECK', new Date().toLocaleTimeString());
  }

结果:

我还没有弄清楚是什么触发了这个。

我是否正确阅读此输出?每秒会触发多次更改检测?

有什么好的方法可以找出在 Angular 2 应用程序中触发变更检测的原因吗?

【问题讨论】:

  • 如何在ndDoCheck 中设置断点并查找它的来源?
  • 如果我表现得无知,请原谅我,但是,您如何在编译后的代码中找到断点?
  • 如果你使用 Angular CLI,它在后台使用 webpack 并创建源映射,即使浏览器运行 JS,你也可以调试 typescript。在 Chrome 开发面板中转到 Sources,在左侧找到 webpack,展开它,然后展开文件夹。 (点)。 TypeScript 源代码在那里,您可以设置断点。
  • 非常感谢@YakovFain
  • 我对另一个类似问题的回答:stackoverflow.com/a/54134894/1678151

标签: angular


【解决方案1】:

Angular DevTools for Chrome 提供了一个分析器,它将列出所有更改检测事件并显示每个事件的来源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多