Typed 和 Untyped 延迟加载模块之间的区别

Difference between Typed and Untyped lazy loading modules

请问Angular中这两种延迟加载模块的区别是什么:

    {
        path:'',
        loadChildren: './mymodule.module#MyModule'
    }

并且:

    {
        path:'',
        loadChildren: () => MyModuleModule
    }

我不知道这两种方法是否可以做同样的事情,或者是否存在任何性能或行为差异。

谢谢!

此语法:

{
    path:'',
    loadChildren: () => MyModuleModule
}

不会导致延迟加载模块。它直接引用 MyModuleModule,因此当 Angular CLI 捆绑包时,它会将 MyModuleModule 与此代码所在的任何模块捆绑在一起。

如果您需要在路由层次结构中的特定位置专门加载功能模块的 child 路由,请使用此语法。

但请注意:我 在我在会议上所做的 "Angular Routing" 演讲中曾 使用 来介绍这一点。 Angular 团队的一名成员建议我 停止 覆盖它,因为在大多数情况下都应该使用延迟加载语法。

此语法:

{
    path:'',
    loadChildren: './mymodule.module#MyModule'
}

是否 导致延迟加载模块。模块名称是在字符串中定义的,因此它没有直接引用,也没有与它在其中定义的模块捆绑在一起。