0

我是 AngularJS 的新手,肯定会从经验丰富的 AngularJS 开发人员那里受益!所以你去:

在 AngularJS 中,使用 ng-view(带有路由器)或自定义指令来显示模板(HTML 部分)在性能方面有什么区别?

自定义指令应该有多大?从我所见,自定义指令可以完全替代视图,但应该以这种方式使用吗?使用其中一种可能有利也有弊。

使用其中一个的经验法则是什么?

提前谢谢了 !

4

1 回答 1

0

我认为这个问题的性能方面有点争议。让我们使用表格和表格行数的概念。除非您使用自定义指令或加载模板生成 100 行数据,否则您可能不会招致任何明显的性能损失。Angular 会缓存模板,因此它不会为每一行一遍又一遍地加载相同的模板。如果您正在生成大量行,那么您可以使用性能调整和不同的 UX 方法来解决这些问题(例如track byng-repeat无限滚动、分页等)

自定义指令应该有多大?

正如您所说,您可以使用指令来制作整个视图。我认为在 Angular 1.* 中,这不是它的预期功能。指令更像是一个小部件或 UI 组件(对于那些主要是具有特定 UX 的 UI 容器的指令,我们显然不会在此讨论中考虑非 UI 类型的指令)。

我的经验法则是这样的:

  • 如果有问题的 UI 拥有某个 URL(又名路由)的所有权,则将其视为视图。一般来说,一个 URL 在视觉上是独一无二的,所以指令性只会创造更多的工作而很少有回报。
  • 如果有问题的 UI 更像是一个小部件/uicomponent,那么使用指令。
  • 如果有问题的 UI 将被一遍又一遍地重用(例如 inside ),那么如果隔离对正在使用的数据执行的某些工作ng-repeat,则应该考虑一个指令。

所有这些点都因预期的用户体验而变得复杂。但经验法则提供了一个很好的起点。

请记住,Angular 2 将通过取消作用域并将指令更像视图来改变这一切。

于 2015-10-01T17:54:17.810 回答