gpt4 book ai didi

angularjs - $scope 与此性能

转载 作者:行者123 更新时间:2023-12-04 15:10:06 24 4
gpt4 key购买 nike

this vs $scope 之间的区别在这个问题中得到了明确的回答。我正在从事的项目之一,我们的高级人员正在推广this超过 $scope认为它提供了更好的性能。

我试图找到任何相同的证据,但官方的 Angular 文档在这件事上的信息非常有限。

谁能解释一下

  • this提供比 $scope 更好的性能(如果我不使用 $watch 等)
  • 如果是,具体原因是什么?性能改进是否足以改变使用 $scope 的现有应用程序?至this ?
  • 最佳答案

    AngularJS 的性能受当前加载的 View (页面)使用的绑定(bind)数量和您使用 $watch 手动设置的 watch 的影响。 .
    所有这些绑定(bind)仅适用于 $scope 上声明的属性。

    这意味着如果您没有绑定(bind)属性以查看或不查看它,最好不要在 $scope 上声明它(也称为避免范围污染)。

    来到 this ,如 SO 帖子 this 中所述当被 Angular 调用(例如在 ng-click 的情况下)和创建 Controller 时具有不同的上下文。

    因此,您在 this 上声明的任何内容(当提到 Controller 时)技术上不能绑定(bind)到 View ,因为它没有在范围内声明。

    但是 Angular 想出了一个 controller as它允许我们在 Controller 对象上使用属性和方法的语法。在这种情况下,通过 Controller 声明的属性使用 ctrl.prop 绑定(bind)到 View 中。句法。
    当您执行 ng-controller='HomeController as ctrl' 时,Angular 内部会执行类似的操作
    $scope.ctrl=this
    这基本上意味着 Angular 将完整的 Controller 对象附加到 $scope因此与 Controller 属性绑定(bind)有效。

    因此,就性能而言,唯一重要的是被监视的绑定(bind)数量。

    关于angularjs - $scope 与此性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422456/

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