【发布时间】:2020-03-28 08:27:39
【问题描述】:
在 html 中可以像这样使用简单的三元运算符:
<div> {{ showStringOneFlag ? 'Display String 1' : 'Display String 2' }} </div>
这可能比在javascript中设置一个字符串变量20次更方便。
我的问题是三元运算符是否太昂贵而无法在每个摘要循环中执行?是否应该避免或谨慎使用此功能?它在消化周期中的足迹是最小的吗?不需要担心吗?我到处寻找答案,我发现它在速度方面与 if/else 语句相当,但在 html 中并没有真正等同于 if/else 语句。
【问题讨论】:
-
您所展示的内容在 HTML 中的意义绝对为零。它仅表示
div内的文字文本 "{{ showStringOneFlag ? 'Display String 1' : 'Display String 2' }}"。 -
有了angular 的附加上下文,这现在有点道理,在它没有之前......
-
您只是想单独衡量三元运算符的性能还是将其与其他方法(例如管道)进行比较?
-
@IraklisGkougkousis 完全正确。我想知道它是否被视为
*ngIf或pipe仅在输入更改时重新计算,还是更像是添加一个在每个摘要周期计算的函数。 -
@rhavelka 按摘要周期,您是指生命周期吗?无论如何,在花括号之间插入的表达式将在每个 ngOnChanges 循环中重新计算。
标签: html angular conditional-operator