【问题标题】:Lodash in Angular Template EfficiencyAngular 模板效率中的 Lodash
【发布时间】:2017-06-26 18:04:40
【问题描述】:

我有一个 Angular 2.x 应用程序,它在其组件中利用了 Lodash,我也在考虑在视图模板中使用它。

我注意到 Angular(从 1.x 切换到 2.x)放弃了对 "performance reasons," 的一些更密集的视图模板管道(如 filterorderBy)的支持,现在它说“在组件中执行”。

在视图中使用 Lodash 是否应该遵循相同的建议?是否有“性能原因”为什么我不应该在视图中使用 Lodash(或类似的库)?有没有什么时候没有影响,有的时候有影响?

一些示例用法如下:

<div *ngIf="_.isEmpty(someVariable)">
  ....
</div>
<div *ngFor="let x of _.union(arrayOne, arrayTwo)">
  ....
</div>

感谢您的任何意见!有问题的项目是开源的,托管在here

【问题讨论】:

  • 角度变化检测是这里的性能问题。如果你要在视图中调用 loadash api,为什么不在你的组件类中调用呢?这样更干净,更容易调试。

标签: performance angular templates view lodash


【解决方案1】:

在模板绑定上使用 lodash 函数或任何计算函数是有风险的。

角度变化检测会以超出预期的方式运行此函数的次数过多,这可能会导致滞后或无限循环,请改为绑定变量。

触发 loadash 或对组件挂钩的任何计算效率更高。

【讨论】:

    猜你喜欢
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多