javascript - 什么是更高性能的结构指令或在 Angular 模板的表达式中使用函数?
问题描述
我正在与一位同事讨论在 Angular 模板上显示数据的不同方式(下面的示例显示了复数单词的情况)。
从 Angular 模板上的条件渲染数据时,最佳实践是什么?在 Angular 模板的表达式中使用结构指令或函数或三元调用是否更高效?
这 3 个场景中哪个最有效?
门票.component.html
1.
<span class="total-text">Total Ticket<ng-container *ngIf="ticketing.inProgressNum !== 1">s</ng-container></span>
2.
<span class="total-text"> {{ ticketing.inProgressNum !== 1 ? 'Total Tickets' : 'Total Ticket'}} </span>
3.
<span class="total-text"> {{ getTicketCopy(ticketing.inProgressNum) }} </span>
门票.component.ts
getTicketCopy(ticketsInProgress) {
return ticketsInProgress !== 1 ? 'Total Tickets' : 'Total Ticket'
}
感谢您的任何建议!
解决方案
为了将单个字符附加到字符串的末尾,我会使用 no 1 但对于更复杂的东西我会使用
<ng-container *ngIf="ticketing.inProgressNum !== 1 else multiple">Total Ticket</ng-container>
<ng-template #multiple>Total Tickets</ng-template>
最好不要在模板中调用函数,将 console.log 放入其中,看看它们被命中的频率。
你也可以使用类似的东西
<span class="total-text">{{ticketsText}}</span>
并在更新票证数量时更新票证文本。这是迄今为止性能最高的方法。
推荐阅读
- database - 如何从 Rocket 的环境中建立数据库连接?
- java - 切换到横向模式时应用程序崩溃(Android Studio)
- flutter - 颤振改变标签宽度
- python - 高斯过程回归:零均值
- asp.net-mvc - 无法将类型“System.Guid”隐式转换为“int”-asp.net mvc
- vue.js - 带有 Vuex 状态的条件列表渲染
- mysql - 当对象属性设置较早时,EntityManager 分离实体在刷新后传递到持久化
- spring-boot - PF4J Spring - 除了在配置类中声明的 bean 之外,无法加载插件中的任何组件
- javascript - React/Javscript如何循环遍历json文件并显示
- ruby-on-rails-4 - 如何使用 Ionic 4 React with Rails 执行身份验证操作