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

时间:2016-05-05 16:41:46

标签: javascript angularjs angular

This question与我自己非常相似,但我认为不同(第2版)不值得。

什么,具体,在Angular 2应用中调用bootstrap()做了什么?你能用简单的术语解释一下吗(比如我5岁)?

Lil背景

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

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

我得到了什么:

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

我不知道:

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

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

1 个答案:

答案 0 :(得分:4)

<强>自举()

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

<强>区

Angulars区域补丁几乎所有异步API,如addEventListener()setTimeout(),...,以便在发生此类事件时收到通知,或者在事件处理程序调用这些事件时更好。这是Angular运行其更改检测以检查模型是否已更改并且需要传播更改并且需要更新视图的时间。

没有特殊的后端

Angular对后端没有任何特殊处理。如果有需要加载的资源,则会请求获取这些资源,但除普通的HTTP Web服务器外没有特殊的后端。

<强> WebWorker

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