控制器替换为Component angular 2

时间:2017-01-14 11:19:59

标签: angularjs angular

我很难区分ComponentController Controller如何用角度2中的组件替换? 我读到有关组件:

  

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

     

这使得以类似于使用Web组件或使用Angular 2的应用程序架构风格的方式编写应用程序变得更加容易。

     

组件的优点

     
      
  • 比plain指令更简单的配置
  •   
  • 宣传理智默认值和最佳做法
  •   
  • 针对基于组件的架构进行了优化
  •   
  • 编写组件指令将使其更容易升级到Angular 2
  •   
     

何时不使用组件

     
      
  • 用于需要在编译和预链接函数中执行操作的指令,因为它们不可用
  •   
  • 当您需要高级指令定义选项时,例如priority,terminal,multi-element
  •   
  • 当您需要由属性或CSS类而不是元素触发的指令时。
  •   

来自AngularJs Documentation

,请阅读Directive vs Component

之间的差异

但我正在logic component中实施controller {{1}}。

那么有人可以解释一下吗?如何在控制器组件视角中考虑应用程序的体系结构。

3 个答案:

答案 0 :(得分:1)

我不会像你问的那样将它们与应用程序的体系结构区分开来。它几乎是相同的概念,重新命名并变得更容易。长话短说,您可以将其视为同一类型的实体。

我认为componentcontroller更容易让人们掌握,即使它适合MVC,是最后的" C"。通常,将组件作为UI的一个元素进行推理会更容易一些。人们可以想到整个UI由多个组件组成,每个组件都在创建整个画面,因此从Angular团队的角度来看,这个名称更合适。我也更喜欢组件。

答案 1 :(得分:1)

来自:https://kw-angulardart.appspot.com/tutorial/05-ch03-component.html(此版本的教程使用AngularDart版本0.10.0。)。可能过时了,但可能也有帮助?

组件和控制器之间的主要区别在于组件的内部结构与周围环境隔离,可以将其视为黑匣子。

组件创建自己的范围层次结构,该层次结构对于外界是不可见的。他们无权直接访问应用程序的范围,也无权直接访问组件的范围。

组件通过创建影子DOM将其视图与周围环境隔离。使用影子DOM可以使组件在任何地方使用,而不会遇到CSS名称冲突之类的问题。

答案 2 :(得分:0)

Controller(Angular 1.x)被Angular 2中的组件类替换,因为现在我们有ES6类。

ES6类与Typescript相结合,非常容易实现依赖注入等内容。

Angular和Angular 2都有模板。