<分区>
我一直在努力理解框架中这两个概念之间的区别。
我非常熟悉 AngularJS 1.x 中的指令是什么,Angular 2 中的组件和指令似乎与这个概念非常相似......
<分区>
我一直在努力理解框架中这两个概念之间的区别。
我非常熟悉 AngularJS 1.x 中的指令是什么,Angular 2 中的组件和指令似乎与这个概念非常相似......
最佳答案
您可以将任何组件视为带有 View 的指令。
基于只有组件有 View 的事实,有几个后果,例如:
指令
以用于组件本身和它作为根的整个子树。管道
以及它作为根的整个子树。viewEncapsulation
,因为它们可以有 View ,这与指令相反ElementInjector
时,它将被标记为一个 Host
注入(inject)器。在 Angular 2 中定义组件的经典方式是:
@Component({
selector: '...',
// ...
})
@View({
template: '...'
})
class ComponentCtrl {...}
@View
装饰器帮助您为给定组件定义 View 。最初它是在一个单独的装饰器中外部化的(就像上面的例子一样),因为 Angular 团队计划允许单个组件具有多个 View 定义(一个用于组件将要运行的每个平台)。
最近这个装饰器被删除了,所以目前你可以定义一个组件:
@Component({
selector: '...',
template: '...',
//...
})
class ComponentCtrl {...}
通过这种方式,您可以获得相同的结果,但输入的次数会少一些。 Angular 2 在内部会根据您为 @Component
装饰器设置的属性添加适当的 View 元数据。
关于typescript - Angular 2 中的组件和指令有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33910229/
相关文章:
javascript - 模拟 Node 获取时出现“已使用的主体”错误?
iphone - 如何将 NSString 的每个字符添加到 NSArray 中?
javascript - 引用父作用域时,ng-repeat 内的 Angular 表达式不会被渲染
javascript - 无法从指令模板 Angular 访问模块
javascript - TypeScript 中的 RSA 加密/解密
javascript - 如何为相同数据类型的多个实例重用 Redux reducer 逻辑?
actionscript-3 - 在 Flash 中的组件的 ActionScript 3 中使用动态数组填充可检查列表