在ng-if / * ngIf中使用函数调用是不好的做法吗?

时间:2016-01-17 19:45:29

标签: angularjs

在ng-if中使用函数调用的返回值是不好的做法。它会影响消化周期/性能吗?

3 个答案:

答案 0 :(得分:4)

作为视图中使用的任何表达式,它将在每个摘要周期重新评估,以查看其值是否已更改,因此必须删除该元素或将其添加到DOM中。

如果功能足够简单,没问题。如果它试图计算pi的第10000个小数,那么您将遇到性能问题。重要的是了解你正在做什么,以及它是如何运作的。

因此,如果你觉得使用一个函数会让你的代码变得更简单,那就去做吧,如果你真的需要的话就开始优化。

答案 1 :(得分:1)

不,那很好。该功能不应有副作用(特别是不要更改参与变化检测的其他字段)

答案 2 :(得分:0)

函数调用将比仅仅对范围上的变量进行纯粹评估稍慢,这主要是因为必须在“检查真实性”运行之前处理“运行函数”的步骤。但这种性能影响取决于您的函数运行所需的时间。

通常,任何构成复杂逻辑的东西都可以被提取到一个函数中,它会清理你的HTML,因为你的模板文件中不需要长JS。

如果语句不能在单个JS语句中完成,或者语句的开头长度超过40个字符,我经常会提取函数。