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

This question与我自己非常相似,但我相信不同(版本2)值得另一个.

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

Lil背景

Angular 2 Quickstart包含以下main.js

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

我得到了什么:

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

我没有:

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

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

最佳答案
引导()

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

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

没有特别的后端

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

WebWorker

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

相关文章

kindeditor4.x代码高亮功能默认使用的是prettify插件,prett...
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小