我正在查看ngx-translates
提供翻译输入的两种方式。
- 作为管道
{{'messageId' | translate}}
- OR 作为指令
<span [translate]="'messageId'">
该管道是一个不纯的管道,可以处理翻译和任何异步文本加载。我认为这种方法的缺点是每次摘要周期运行时都会触发 this 。
另一种方法是使用该指令。在这种情况下,我们可以使用事件或可观察对象来控制方法何时被触发。这种方法可以减少不必要的更新。
但是由于指令操作 DOM,我的问题是指令方法会使整体速度变慢吗?另外,有没有一种方法可以衡量一个方法相对于另一个方法的性能?
最佳答案
Angular 中的插值是属性绑定(bind)上的语法糖。正如文档中所解释的,这两个是相同的
<p><span>"{{title}}" is the <i>interpolated</i> title.</span></p>
<p>"<span [innerHTML]="title"></span>" is the <i>property bound</i> title.</p>
因此,如果您看到属性绑定(bind)的好处,那就去吧。
关于Angular 2 不纯管道 vs 指令性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42899129/