Angularjs directive 何时使用ng view(带路由器)或自定义指令显示模板(部分)?

Angularjs directive 何时使用ng view(带路由器)或自定义指令显示模板(部分)?,angularjs-directive,ng-view,angular-template,Angularjs Directive,Ng View,Angular Template,我是AngularJS新手,肯定会从经验丰富的AngularJS开发人员那里获益!那么,给你: 在AngularJS中,将ng view与router或自定义指令一起使用以显示模板HTML部分在性能方面有什么不同 自定义指令应该有多大?在我看来,自定义指令可以完全替代视图,但它应该这样使用吗?使用其中一种可能有好处也有缺点 使用其中一个的经验法则是什么 非常感谢 我认为这个问题的性能方面有点毫无意义。让我们使用一个表和多个表行的概念。除非您使用自定义指令或加载模板生成100行数据,否则您可能不会

我是AngularJS新手,肯定会从经验丰富的AngularJS开发人员那里获益!那么,给你:

在AngularJS中,将ng view与router或自定义指令一起使用以显示模板HTML部分在性能方面有什么不同

自定义指令应该有多大?在我看来,自定义指令可以完全替代视图,但它应该这样使用吗?使用其中一种可能有好处也有缺点

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


非常感谢

我认为这个问题的性能方面有点毫无意义。让我们使用一个表和多个表行的概念。除非您使用自定义指令或加载模板生成100行数据,否则您可能不会招致任何明显的性能损失。Angular缓存模板,因此它不像是为每一行反复加载相同的模板。如果要生成大量行,则可以使用性能调整和不同的用户体验方法来解决这些问题,例如按ng重复跟踪、无休止滚动、分页等

自定义指令应该有多大

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

我的经验是:

如果所讨论的UI拥有URL的某些所有权。然后将其视为视图。一般来说,一个URL在视觉上是独一无二的,因此,如果将它命名,只会产生更多的工作和很少的回报。 如果所讨论的UI更像一个小部件/uicomponent,那么使用一个指令。 如果正在讨论的UI将被反复使用,例如在ng repeat内部,那么如果要对正在使用的数据执行某些隔离工作,则应考虑一个指令。 所有这些点都会因预期的用户体验而变得复杂。但经验法则提供了一个很好的起点

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