【发布时间】:2017-09-19 00:06:26
【问题描述】:
例如,我有一个包含 ToDo 项目的简单数组。
[
{ name: 'Item 1', completed: false },
{ name: 'Item 2', completed: false }
{ name: 'Item 3', completed: true }
{ name: 'Item 4', completed: false }
]
此数组应显示为 2 行:
Done 和 Not Done。
我有 2 个选择。
1 个 Getter。
public get doneItems() {
// filter and return only done items. And similar method for not done
}
2 个管道。
问题:
您是否有一些指标或建议哪些选项具有更好的性能,以防应该有实时更新的数组(添加、删除、更新)和更复杂的项目以及页面上最多 100 个项目。
谢谢!
【问题讨论】:
-
性能方面我无法想象有任何显着差异,如果您不解决网络上的关键任务问题!我会根据上下文和我想解决问题的方式来决定。
-
只是做过滤,我认为 100 个项目没有任何区别。通常,更简单的解决方案是 - 更好
-
知道了,谢谢!
-
一般来说,不要使用管道进行过滤(angular.io/guide/pipes#appendix-no-filterpipe-or-orderbypipe)。原因是每次更改检测启动并更新视图时管道都会运行,而组件中的代码则在您的控制之下。但是,在您的情况下,没有什么不同,因为您计划在每次模板更新中调用
getter。但我还是更喜欢把过滤器放在那里,因为将来重构代码会容易得多。
标签: javascript angular