带绑定的ng-style或style属性?哪个更好?哪个更快?有什么不同?

Jay*_*kla 25 angularjs

我正在优化我的大型应用程序.我对以下两种方法感到困惑,请帮助确定哪一种更快.

内联样式属性

<div style="background-color:{{item.color}}"></div>
Run Code Online (Sandbox Code Playgroud)

使用ng风格

<div ng-style="{'background-color':item.color}"></div>
Run Code Online (Sandbox Code Playgroud)

使用一次风格

<div once-style="{'background-color':item.color}"></div>
Run Code Online (Sandbox Code Playgroud)

注意:因为once-style,我使用了AngularOnce指令.

提前致谢.请告诉我哪一个更快,为什么.

leo*_*ges 29

在Angular 1.3之后可以进行一次绑定.

您可以这样做而不依赖于第三方库:

<div ng-style="::{'background-color': item.color}"></div>
Run Code Online (Sandbox Code Playgroud)

我没有测量性能,但我很确定它比没有冒号更好.

  • 在1.3之后,这绝对是正确的答案 - (2认同)
  • 表达式前的“::”有什么意义?@leonardoborges (2认同)

Alw*_*ner 12

由于您正在优化相当大的应用程序,因此性能肯定存在问题,我认为ngStyle性能更好,因为它在模型上设置监视并且仅在模型已更改时才更新视图.

所以我会选择ngStyleonceStyle取决于你的情况:

<div once-style="{'background-color':item.color}"></div>
Run Code Online (Sandbox Code Playgroud)

使用{{}}将使Angular更新每个摘要周期的绑定,即使该值未更改.

  • 谢谢.但是它会比插值样式更快,因为我在使用ng时手表没有任何区别 - 如果是这样它将从DOM中删除并再次在另一个标志的基础上呈现. (2认同)