【问题标题】:Controller replaced with Component angular 2控制器替换为组件 angular 2
【发布时间】:2017-05-29 16:44:16
【问题描述】:

我对区分 ComponentController 有点困惑。 如何用 Angular 2 中的组件替换控制器? 我读到了组件:

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

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

组件的优势

  • 比普通指令更简单的配置
  • 提倡合理的默认设置和最佳做法
  • 针对基于组件的架构进行了优化
  • 编写组件指令将更容易升级到 Angular 2

何时不使用组件

  • 用于需要在编译和预链接函数中执行操作的指令,因为它们不可用
  • 当您需要优先级、终端、多元素等高级指令定义选项时
  • 当您需要由属性或 CSS 类而不是元素触发的指令时。

来自AngularJs Documentation

还有,读取Directive vs Component之间的区别

但我在component 中实现了与controller 中相同的logic

那么有人可以解释一下吗?以及如何从组件的角度考虑应用程序的架构而不是控制器

【问题讨论】:

    标签: angularjs angular


    【解决方案1】:

    Controller (Angular 1.x),在 Angular 2 中被组件类取代,因为现在我们有了 ES6 类。

    ES6 类与 Typescript 相结合,使得依赖注入之类的东西变得非常容易。

    Angular 和 Angular 2 中都有模板。

    【讨论】:

      【解决方案2】:

      我不会按照您的要求从应用程序架构的角度区分它们。这是几乎相同的概念,即重新命名并变得更容易。长话短说,您可以将其视为同一类型的实体。

      我想componentcontroller 更容易被人们掌握,尽管它适合 MVC,是最后一个“C”。通常,将组件作为 UI 的元素进行推理会更容易一些。可以想象整个 UI 由多个组件组成,每个组件都在做自己的小工作来创建整个画面,因此从 Angular 团队的角度来看,我猜这个名字更合适。我也更喜欢组件。

      【讨论】:

      • Angular 1.X 有作用域,控制器会继承父作用域。据我所知,Angular 2(等)组件已完全包含在内,从而简化了逻辑。
      【解决方案3】:

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

      组件和控制器的主要区别在于组件的内部结构与周围环境隔离开来,可以被认为是黑盒子。

      组件创建自己的范围层次结构,外部世界不可见。他们不能直接访问应用的范围,应用也不能直接访问组件的范围。

      组件通过创建影子 DOM 将其视图与周围环境隔离开来。使用 shadow DOM 允许在任何地方使用组件,而不会受到 CSS 名称冲突等问题的影响。

      【讨论】:

        猜你喜欢
        • 2018-07-31
        • 1970-01-01
        • 2016-03-30
        • 2016-11-11
        • 2016-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多