Jos*_*ong 12 components directive typescript angular
我一直在努力理解框架中这两个概念之间的区别.
我非常熟悉AngularJS 1.x中的指令,Angular 2中的组件和指令似乎与此概念非常相似......
Min*_*hev 18
您可以将任何组件视为具有视图的指令.
基于只有组件具有视图的事实,会产生一些后果,例如:
directives在组件本身和整个子树中使用它.pipes在组件中使用,并且整个子树都是它的根.viewEncapsulation因为它们可以具有视图,与指令相反ElementInjector为给定组件创建时,它将被标记为Host注入器.在Angular 2中定义组件的经典方法是:
@Component({
selector: '...',
// ...
})
@View({
template: '...'
})
class ComponentCtrl {...}
Run Code Online (Sandbox Code Playgroud)
该@View装饰帮助您确定给定分量的图.最初它是在一个单独的装饰器中外部化的(就像上面的例子一样),因为Angular团队计划允许单个组件具有多个视图定义(组件将要处理的每个平台一个).最近这个装饰器被删除了,所以目前你可以定义一个组件:
@Component({
selector: '...',
template: '...',
//...
})
class ComponentCtrl {...}
Run Code Online (Sandbox Code Playgroud)
这样您可以获得相同的结果,但输入的次数会少一些.内部Angular 2将根据您为@Component装饰器设置的属性添加适当的视图元数据.
| 归档时间: |
|
| 查看次数: |
2787 次 |
| 最近记录: |