好的,所以我在几个地方读到使用 ng-bind 对性能更好。但是看着这些 jsperfs 让我有点困惑 :)
https://jsperf.com/angular-bind-vs-brackets
http://jsperf.com/ng-bind-vs-brackets/14
那么,在性能方面,最好的方法是什么?
{{::value}}
或者
<div ng-bind="value"></div>
好的,所以我在几个地方读到使用 ng-bind 对性能更好。但是看着这些 jsperfs 让我有点困惑 :)
https://jsperf.com/angular-bind-vs-brackets
http://jsperf.com/ng-bind-vs-brackets/14
那么,在性能方面,最好的方法是什么?
{{::value}}
或者
<div ng-bind="value"></div>
你应该使用ng-bind
. 它是一个指令,在该变量上放置一个观察者,因此它仅在变量更改时更新,而{{}}
在每个摘要周期中都会进行脏检查并刷新变量。
看到这个答案
也::
称为“bindence”,只会设置一次变量,之后不会更新。
e:jsperf 测试从变量到 html 的绑定(我认为),而链接的答案侧重于之后的行为。如果您有 100 个花括号并更新一个模型,则每个模型{{}}
都会更新。虽然ng-bind
仅在变量本身更改时才更新,因为它为该变量创建了一个观察者。
当涉及一次性绑定时,您还应该在 ng-bind 中使用冒号。
所以使用ng-bind="::value"
对于过滤器或表达式,您必须使用括号:ng-bind="::(value | number:2)"
使用ng-bind
更好。如果没有加载 javascript 文件,{{}} 将显示在页面上。