Angular 2模块允许应用程序分为多个模块,每个模块用于不同的目的。但这不是ES6模块应该做的吗?
两者有什么区别?
答案 0 :(得分:4)
取自angular.io:
Angular模块类在三个关键方面与JavaScript模块类不同:
Angular模块仅限制可声明的类。声明是唯一对Angular重要的类。
我们不是在一个巨型文件中定义所有成员类(如在JavaScript模块中),而是在@NgModule.declarations
列表中列出模块的类。
答案 1 :(得分:1)
ES模块与Angular模块:
ES模块是导入或导出内容的代码文件,而角度模块将应用程序组织成具有凝聚力的功能块。
ES模块组织我们的代码,而角度模块组织我们的应用程序。
ES模块模块化我们的代码,而角度模块模块化我们的应用程序。
ES模块促进代码重用,而角度模块促进应用程序边界。
答案 2 :(得分:1)
我发现很棒的文章解释了差异here,以下是主要差异:
ES6模块:
这些模块包含一小部分独立的可重用代码。它们导出一个值,该值可以导入并在其他模块中使用。
ES6模块的用途:
避免将代码泄漏到全局名称空间,
角度模块:
Angular模块是特定于Angular的构造。
Angular模块在逻辑上将不同的Angular工件(例如组件,管道,指令等)分组。
以@NgModule装饰器形式的Angular模块向Angular编译器提供元数据,从而可以更好地“了解我们的应用程序”结构,从而进行优化。
角度模块的用途:
将Angular应用程序部分组织为内聚块
有助于保持关注点分离
答案 3 :(得分:-1)
取自此来源:https://stackoverflow.com
ES模块:
- ES6模块代表一个文件。
- ES6模块语法是ECMAScript语言规范的标准化构造。
醇>另一方面:
- Angular Modules是一个Angular特定的构造。
- Angular Modules在逻辑上将不同的Angular工件分组,例如组件,管道,指令等。
- @NgModule装饰器形式的Angular模块为Angular编译器提供元数据,而后者可以更好地“推理” 关于我们的应用程序“结构,从而引入优化。
- 延迟加载等重要功能在Angular Module级别完成。
醇>