2016-07-18 86 views
3

角1.5引入components什么时候应该使用组件而不是指令?

在角,组件是一种特殊的指令,使用更简单的配置,它适合用于基于组件的应用程序结构。

我真的似乎没有发现任何优势,使用它们的指令。从我所知道的情况来看,它们具有较少的特征(例如,不再有compilelink函数),并且引入了一些稍微不同的语法。

使用它的文档,因为它“更简单”,并将帮助转换到Angular 2,但我们仍然在Angular 2中有指令,对吧?我是否有理由将我的指令转换为Angular 1.5应用程序中的组件?

回答

5

Angular 2

组件具有视图,它的一部分的UI。 一条指令没有。

这就是这么简单,如果你的元素有一个视图/模板,那么它的一个组件。 如果只需要获取元素,请更改attribtues,注册到events - >指令。

Angular 1

在angular 1中,组件是指令的外观。换句话说,一个组件(角度为1.5+)是创建指令的工厂。使用组件是最佳实践,因为它会以“正确”的方式创建指令。 Angular1中的指令是超级可配置的,并且有很多选项会导致实现效果差以及角度不良的PR值较差。因此,组件被添加以帮助开发人员以正确的方式创建指令(没有范围,控制器一致等)。 )

+0

我应该提到我没有使用Angular 2.这个答案是否适用于Angular 1.5? – adamdport

+0

不,这个答案仅适用于Angular 2. 在angular 1中,组件是用于指令的'facade'。换句话说,一个组件(角度为1.5+)是创建指令的工厂。使用组件是最佳实践,因为它会以“正确”的方式创建指令。 Angular1中的指令是超级可配置的,并且有很多选项会导致实现效果差以及角度较差的PR: 因此,添加了**组件**以帮助开发人员以正确的方式创建指令(没有范围,一致控制器等等) –

+0

除了提及,你应该删除'angular2'标签。 –

相关问题