AngularJS 1.5中组件和指令之间的主要区别是什么?
我发现很难理解组件和指令之间的真正区别。我现在明白了,组件是一个简单得多的概念 考虑到这一点,在使用AngularJS 1.5时是否有理由继续使用指令 也许我在这里遗漏了真正的上下文,但似乎组件提供了一个更简单的API 那么,我必须继续使用指令的原因是什么 Angular 2声明所有东西都是一个组件,因此努力实现从1.5到2的简单迁移,只使用组件是否有意义AngularJS 1.5中组件和指令之间的主要区别是什么?,angularjs,angular-directive,Angularjs,Angular Directive,我发现很难理解组件和指令之间的真正区别。我现在明白了,组件是一个简单得多的概念 考虑到这一点,在使用AngularJS 1.5时是否有理由继续使用指令 也许我在这里遗漏了真正的上下文,但似乎组件提供了一个更简单的API 那么,我必须继续使用指令的原因是什么 Angular 2声明所有东西都是一个组件,因此努力实现从1.5到2的简单迁移,只使用组件是否有意义 在过去,我使用指令来创建,例如,一个自动查找文本框,现在我没有理由不在组件中这样做,对吗?然后我可以在我创建的其他组件中重复使用这个组件?只
在过去,我使用指令来创建,例如,一个自动查找文本框,现在我没有理由不在组件中这样做,对吗?然后我可以在我创建的其他组件中重复使用这个组件?只需复制角度文档,因为它们以我能想到的最佳方式放置 了解组件 在Angular中,组件是一种特殊的指令,它使用 更简单的配置,适用于基于组件的 应用程序结构 这使得以类似于使用的方式编写应用程序变得更容易 Web组件或使用Angular 2风格的应用程序架构 组件的优点:
- 比普通指令更简单的配置
- 推广合理的默认值和最佳实践
- 针对基于组件的体系结构进行了优化
- 编写组件指令将使升级到Angular 2更容易
- 对于依赖于DOM操作的指令,添加事件侦听器等,因为编译和链接函数是 不可用
- 当您需要高级指令定义选项时,如优先级、终端、多元素
- 当您需要由属性或CSS类而不是元素触发的指令时
更多阅读:受本文启发,我将尝试从高层角度进行解释()。它表示Angular2,但在AngularJs上下文中也很有用 指令 在计算机科学中有“指令Pragma”的概念。根据维基百科: 在计算机编程中,指令pragma(来自“语用”)是一种语言结构,用于指定编译器(或汇编程序或解释器)应如何处理其输入。指令不是语言本身的一部分 这与AngularJS文档给出的描述非常吻合: 在高层,指令是DOM元素(如属性、元素名称、注释或CSS类)上的标记,它告诉AngularJS的HTML编译器($compile)将指定的行为附加到该DOM元素(例如通过事件侦听器),甚至转换DOM元素及其子元素 因此,指令基本上是向(角度)编译器发出指令,以改变DOM或其行为 组件 AngularJS中的组件是一个特殊指令;他们试图模仿web组件,正如AngularJS文档所述: 在AngularJS中,组件是一种特殊的指令,它使用更简单的配置,适用于基于组件的应用程序结构 这使得以类似于使用Web组件或使用新Angular的应用程序架构风格的方式编写应用程序变得更加容易 什么时候用什么? 就我个人而言,我使用组件,除非有充分的理由不这样做 其中一些原因在AngularJS组件文档中给出:
- 用于需要在编译和预链接函数中执行操作的指令,因为它们不可用
- 当您需要高级指令定义选项时,如优先级、终端、多元素
- 当您需要由属性或CSS类而不是元素触发的指令时
如果您能提到这些差异,那就太好了:)