我们应该在 Angular 应用程序中创建的所有模块中导入 BrowserModule 吗?

Posted

技术标签:

【中文标题】我们应该在 Angular 应用程序中创建的所有模块中导入 BrowserModule 吗?【英文标题】:Should we import BrowserModule in all modules created inside an Angular app? 【发布时间】:2019-07-19 17:43:11 【问题描述】:

我是 Angular 的新手。我得到了BrowserModule的解释如下。

导出所有 Angular 应用所需的基础架构。包括在 使用 CLI new 命令创建的所有 Angular 应用程序中的默认值。 重新导出 CommonModule 和 ApplicationModule,使其导出 以及适用于所有应用的提供商。

当我使用 angular-cli 时,我发现这个 BrowserModule 默认被导入到应用程序模块中。

我的疑问是,我们是否应该在 Angular 应用程序内创建的所有模块中导入 BrowserModule

【问题讨论】:

【参考方案1】:

默认情况下,任何新的基于 Web 的 Angular 应用程序都需要 BrowserModule。 它应该从@angular/platform-b​​rowser 导入。

BrowserModule 还从 @angular/common 重新导出 CommonModule,这意味着 AppModule 模块中的组件也可以访问每个应用所需的 Angular 指令,例如 NgIf 和 NgFor。

【讨论】:

【参考方案2】:

BrowserModule 提供对启动和运行浏览器应用程序必不可少的服务。不要在您创建的任何其他模块中导入BrowserModule。正如您所提到的,它会通过 CLI 自动导入到根应用程序模块 AppModule 中。

通过此link 了解更多信息。

【讨论】:

【参考方案3】:

几乎每个浏览器的根应用程序模块 AppModule 应用程序应该从 @angular/平台浏览器。

BrowserModule 提供启动和运行 浏览器应用程序。

BrowserModule 还从 @angular/common 重新导出 CommonModule,它 意味着 AppModule 模块中的组件也可以访问 每个应用都需要 Angular 指令,例如 NgIf 和 NgFor。

不要在任何其他模块中导入 BrowserModule。功能模块和 延迟加载的模块应该导入 CommonModule。他们需要 通用指令。他们不需要重新安装整个应用程序 供应商。

检查参考Here

【讨论】:

【参考方案4】:

几乎每个浏览器应用程序的根应用程序模块 AppModule 都应该从 @angular/platform-browser. 导入 BrowserModule

BrowserModule 提供启动和运行所必需的服务 浏览器应用程序。

BrowserModule 还从 @angular/common 重新导出 CommonModule,这意味着 AppModule 模块中的组件也可以访问每个应用程序所需的 Angular 指令,例如 NgIfNgFor

不要在任何其他模块中导入BrowserModule。功能模块和延迟加载模块应该导入 CommonModule。 它们需要通用指令。他们不需要重新安装应用程序范围的提供程序。

Official Documentation

【讨论】:

以上是关于我们应该在 Angular 应用程序中创建的所有模块中导入 BrowserModule 吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Angular 指令设置为在 Javascript 中创建的 DOM 元素

在python中创建的文件应该打印错误消息[重复]

我在哪里可以找到可以在 Powershell 中创建的所有 COM 对象?

如何将您在 python 中创建的 .wav 文件保存到指定目录?

服务中的 Angular 4+ ngOnDestroy() - 销毁 observable

按需要在 JDBC 中创建的顺序对外键关系进行排序