gpt4 book ai didi

Angular 2 : What is the bootstrap process?

转载 作者:行者123 更新时间:2023-12-04 13:23:45 25 4
gpt4 key购买 nike

我已经查看了文档,但找不到任何有关引导过程中发生的事情的分步过程。

我正在寻找与此类似的东西:

  1. 收集所有模块
  2. 提供程序被实例化并放入各个模块的注入(inject)器中
  3. 组件、指令和管道
  4. ...

我查看了 Angular GitHub 上的源代码,但是我找不到 platformBrowserDynamic.bootstrapModule(AppModule) 的实现(我假设它会详细说明该过程)。该目录位于 here , 但找不到 bootstrapModule

如果有人可以向我解释这一点,或者如果有人可以将我链接到引导过程的源代码,将不胜感激!

最佳答案

您首先要了解的是,与应用程序 Bootstrap 相关的 API 目前正在审核中。这是非常高级的操作顺序。

这些行:

platformBrowserDynamic().bootstrapModule(AppModule)
  1. 使用根注入(inject)器 (platformBrowserDynamic) 创建平台
  2. 使用平台引导模块(bootstrapModule)

当模块被引导时(如果您使用 AOT 则跳过此部分):

  1. 创建 JIT 编译器
  2. Compile AppModule 及其所有组件 - create factories
  3. 引导 AppModule 工厂

当引导 AppModule 工厂时:

  1. 创建 NgZone 注入(inject)器
  2. 创建 AppModule 实例(moduleRef)
  3. 在 AppModule 的 bootstrap 中指定的 Boostrap 组件

这意味着:

  1. 创建引导组件实例 - 为所有子组件创建组件 View (Services.createRootView) 并实例化组件/指令类。我相信这是最重要的一步,因为 Angular 在这里递归地遍历编译器为所有组件创建的工厂并创建 View 。它还创建 DOM 节点并将它们相互关联。
  2. 将创建的根组件 View 附加到 applicationRef
  3. Run change detection这会触发组件上的所有生命周期 Hook

关于 Angular 2 : What is the bootstrap process?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44526607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com