Angular 应用是如何加载和启动的

2025年3月17日 | 阅读 3 分钟

当你创建一个 Angular 应用并使用ng serve 命令运行它时,它看起来像下面的图片。

Angular app get loaded and started

这是一个简单的 Angular 应用,使用ng new app_name 命令创建,并且没有对应用进行任何编辑。应用的名称是angular8firstapp.

现在,我们将学习 Angular 应用是如何加载和启动的。

让我们从app.compoment.html文件中删除所有代码,并编写一些基本的 HTML 代码。例如

这是app.compoment.html 文件中的原始代码

Angular app get loaded and started

现在,它被替换并看起来像这样

Angular app get loaded and started

你也可以在浏览器中看到它

Angular app get loaded and started

这里,上面的文件没有被服务器提供。服务器提供了一个 index.html 文件。

Angular app get loaded and started

Angular 是一个框架,允许我们创建“单页应用程序”,而这里 index.html 是服务器提供的单页。

Index.html

上面的代码看起来像一个普通的 HTML 代码,并且 <title> 标签在浏览器中显示了与应用程序标题相同的标题。但是 <body> 代码与普通的 HTML 代码不同。在这里,你看到了 CLI 提供的 "<app-root>" 标签。 我们可以说,每当我们从 CLI 创建一个项目时,默认情况下会创建一个组件,即“app component”。

现在,查看 "app.component.ts" 文件。这是一个 TypeScript 文件。在这里,你看到了 "selector" 属性。


Angular app get loaded and started

你可以看到 selector 属性包含与 index.html 文件相同的字符串。 Angular 需要此信息才能将这部分内容以及组件的模板放入 index.html 文件中。

组件的模板是 "./app.component.html",因此 Angular 将这部分内容包含到 index.html 文件的 body 中。

现在,你看到了 "app-root" 是如何包含在 index.html 文件中的。现在,让我们看看“Angular 是如何触发的?”

每当 ng-serve 构建应用程序时,它都会创建“bundles”并在运行时自动将它们添加到 index.html 文件中。因此,从这些 bundles 中,必须首先执行 "main.ts" 文件中的代码,即 "main.ts" 文件是 Angular 应用程序开始执行的主要文件。

Main.ts 文件


Angular app get loaded and started

在这里,bootstrap 方法启动 Angular 应用程序。它引用 AppModule,后者查看 app 文件夹。你可以在 "app.module" 文件中看到一个 bootstrap 数组,它基本上是分析 index.html 文件的所有组件的列表。

查看 app.module.ts 文件


Angular app get loaded and started

现在,你可以看到 Angular 应用程序的加载方式如下:


下一个主题Angular 8 架构