我的应用程序似乎有包含大量逻辑的 View 。我的问题有两个:
View 中的逻辑是否会降低 Angular 应用程序的性能?
作为最佳实践,在 Controller 中处理此逻辑并将结果存储在 View 可以访问的 $scope 属性中是否更好? 这会提高性能吗?
我们应用程序中的 View 示例(一个简单的):
<div class="small-12 column" id="notificationMsg">
{{ config.message | translate : config.getMessageParams(notification)}}
</div>
最佳答案
简短回答: 是
长答案:
您的绑定(bind)必须在每个摘要周期中更新,这会影响所使用的变量。 将值存储在变量中,并且仅在发生变化时才更新它,这将提高您的性能。 然而,只有当您达到一定程度的复杂性时,这才至关重要。只要您的应用程序不会增长太多,这还不会构成威胁。
我不一定将其称为最佳实践,因为它会使您的代码更加复杂并且更难以阅读/理解/维护。 性能并不总是一个问题。当默认情况下它不存在时,它就开始成为一个;)
您可以做的进一步改进是尽可能使用 ng-bind 和 ng-bind html,因为它可以更快地渲染,因为它可以在编译表达式时跳过 angularJS 的一些内部步骤。
所以例如使用
<div ng-bind="foo"></div>
而不是
<div>{{ foo }}</div>
如果可能的话
关于javascript - View 模板中的 Angular 表达式是否会降低 Angular 应用程序的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861773/