角度2模块和Javascript ES6模块之间的区别

时间:2017-02-17 12:23:23

标签: angular es6-modules

Angular 2模块允许应用程序分为多个模块,每个模块用于不同的目的。但这不是ES6模块应该做的吗?

两者有什么区别?

4 个答案:

答案 0 :(得分:4)

取自angular.io:

Angular模块类在三个关键方面与JavaScript模块类不同:

  1. Angular模块仅限制可声明的类。声明是唯一对Angular重要的类。

  2. 我们不是在一个巨型文件中定义所有成员类(如在JavaScript模块中),而是在@NgModule.declarations列表中列出模块的类。

  3. Angular模块只能导出它拥有的可声明类或从其他模块导入。它不会声明或导出任何其他类别。

答案 1 :(得分:1)

ES模块与Angular模块:

  1. ES模块是导入或导出内容的代码文件,而角度模块将应用程序组织成具有凝聚力的功能块。

  2. ES模块组织我们的代码,而角度模块组织我们的应用程序。

  3. ES模块模块化我们的代码,而角度模块模块化我们的应用程序。

  4. ES模块促进代码重用,而角度模块促进应用程序边界。

答案 2 :(得分:1)

我发现很棒的文章解释了差异here,以下是主要差异:

ES6模块:

  • ES6模块,也称为JS模块或JavaScript模块或 ECMAScript模块是JavaScript语言的一部分。
  • JS模块存储在文件中。每个文件有一个模块,每个模块有一个文件。
  • 这些模块包含一小部分独立的可重用代码。它们导出一个值,该值可以导入并在其他模块中使用。

    ES6模块的用途:

  • 避免将代码泄漏到全局名称空间,

  • 封装代码以隐藏实现细节,

角度模块:

  • Angular模块是特定于Angular的构造。

  • Angular模块在逻辑上将不同的Angular工件(例如组件,管道,指令等)分组。

  • 以@NgModule装饰器形式的Angular模块向Angular编译器提供元数据,从而可以更好地“了解我们的应用程序”结构,从而进行优化。

    角度模块的用途:

  • 将Angular应用程序部分组织为内聚块

  • 有助于保持关注点分离

答案 3 :(得分:-1)

取自此来源:https://stackoverflow.com

  

ES模块:

     
      
  1. ES6模块代表一个文件。
  2.   
  3. ES6模块语法是ECMAScript语言规范的标准化构造。
  4.         

    另一方面:

         
        
    1. Angular Modules是一个Angular特定的构造。
    2.   
    3. Angular Modules在逻辑上将不同的Angular工件分组,例如组件,管道,指令等。
    4.   
    5. @NgModule装饰器形式的Angular模块为Angular编译器提供元数据,而后者可以更好地“推理”   关于我们的应用程序“结构,从而引入优化。
    6.   
    7. 延迟加载等重要功能在Angular Module级别完成。
    8.   
相关问题