gpt4 book ai didi

angular - 绑定(bind)到函数时如何触发 Angular 变化检测?

转载 作者:行者123 更新时间:2023-12-01 08:48:03 24 4
gpt4 key购买 nike

从这两个帖子:

  • The mechanics of DOM updates in Angular
  • Angular 2 Performance: Is it better to bind with a data member than a function?

  • 我了解发生“更改检测”时 DOM 是如何更新的。我从 "Everything you need to know about change detection in Angular" 不明白的事情Angular 是如何跟踪函数内部使用了哪些属性以及何时应该运行“更改检测”的。

    假设这是父组件 View 。
    <child [prop]="func()"></child>

    在哪里 func()
    func() { return this.parentProp }

    parentProp没有在模板中使用。如果和何时 parentProp被服务改变了,Angular 怎么知道 func()取决于 parentProp因此应该触发“更改检测”并更新 View 。

    最佳答案

    Angular 不知道也不关心函数的内容。

    Angular 将调用 func()每次更改检测运行并比较之前的结果是否与当前结果相同。

    因为调用函数并比较结果比仅仅比较前一个值和当前值要昂贵得多,所以最好使用事件来用函数结果更新属性并将 View 仅绑定(bind)到属性,而不是绑定(bind)到直接发挥作用。

    如果函数在后续调用中返回不同的值(具有相同的参数值),您将在开发模式下遇到异常,例如

    the model has changed since it was last checked

    关于angular - 绑定(bind)到函数时如何触发 Angular 变化检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49320756/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com