在Angular 2的上下文中,"bootstrapping"是什么意思?

One*_*ood 6 javascript angularjs angular

这个问题与我自己的问题非常相似,但我认为不同(版本2)不值得另一个.

什么,具体,并呼吁bootstrap()在角2应用程序吗?你能用简单的语言解释一下(比如我5岁)吗?


Lil背景

Angular 2快速入门包含以下内容 main.js

(function(app) {
  document.addEventListener('DOMContentLoaded', function() {
    ng.platformBrowserDynamic.bootstrap(app.AppComponent);
  });
})(window.app || (window.app = {}));
Run Code Online (Sandbox Code Playgroud)

我得到了什么:

我很了解这段代码.我理解了范围和事件监听以及所有这些,并且我理解引导是通过各种库之一执行的,具体取决于应用程序运行的环境,这很酷.

我没有:

什么是解释的是,究竟是什么,引导(3号线)是做/我的应用程序.我在其他环境中听说过它是在嵌入式系统上运行以收集所有所需资源的第一件事,我理解如何在Angular 1应用程序中使用它,但我从来没有必要调用这样的引导函数.

它只是将后端附加到webapp中的DOM吗?如果是这样,它会在其他情况下做什么?

Gün*_*uer 5

引导程序()

bootstrap()初始化 Angulars 区域、Angular 本身、依赖注入器 (DI) 和路由器(如果使用)。
然后它创建根组件并将其添加到 DOM。通过创建根组件,它还必须创建其所有子组件和后代组件。

Angulars zone 修补了几乎所有的异步 API,例如addEventListener(), setTimeout(), ... 以在此类事件发生时得到通知,或者在为这些事件调用的事件处理程序完成时得到更好的通知。这是 Angular 运行其更改检测以检查模型是否已更改以及更改是否需要传播以及视图是否需要更新的时间。

没有特殊的后端

Angular 对后端没有做任何特别的事情。如果有需要加载的资源,则会发出请求来获取这些资源,但除了普通的 HTTP Web 服务器之外,没有特殊的后端。

网络工作者

如果您使用 WebWorker,那么基本上有两个 Angular 应用程序被引导。大多数代码和更改检测然后在 WebWorker 中运行,另一个应用程序在更新 DOM 的 UI 线程中运行。这两个应用程序使用消息传递进行通信。