Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 为什么NgRx示例应用中的身份验证模块中定义了两个模块?_Angular_Ngrx - Fatal编程技术网

Angular 为什么NgRx示例应用中的身份验证模块中定义了两个模块?

Angular 为什么NgRx示例应用中的身份验证模块中定义了两个模块?,angular,ngrx,Angular,Ngrx,Angular的NgRx库在其源代码存储库中提供了一个示例应用程序,说明了NgRx的使用。在此应用程序中,有一个用于身份验证的模块。在这两个模块中定义了一个名为AuthModule,另一个名为RootAuthModule 关于这一点,我有几个问题: 为什么身份验证功能模块中有两个模块?为什么不一个呢 每个都有什么用途 当使用NgRx在Angular中创建新的功能模块时,何时会选择双模块设计而不是单模块设计 谢谢大家! 我想它的组织方式是将应用程序启动时需要的内容(forRoot)和可以在整个应用

Angular的NgRx库在其源代码存储库中提供了一个示例应用程序,说明了NgRx的使用。在此应用程序中,有一个用于身份验证的模块。在这两个模块中定义了一个名为
AuthModule
,另一个名为
RootAuthModule

关于这一点,我有几个问题:

  • 为什么身份验证功能模块中有两个模块?为什么不一个呢
  • 每个都有什么用途
  • 当使用NgRx在Angular中创建新的功能模块时,何时会选择双模块设计而不是单模块设计

  • 谢谢大家!

    我想它的组织方式是将应用程序启动时需要的内容(
    forRoot
    )和可以在整个应用程序中重新导入的内容分开

    第一个模块(
    AuthModule
    )是当
    app.module
    使用它时,实际导入并调用
    forRoot
    的模块。第二个模块
    RootAuthModule
    定义了在应用程序中只应发生一次的所有导入


    这实际上取决于您如何组织事情,如果没有需要导出的组件,开发人员可能只定义了一个模块。由于存在需要连接的服务组件,他们选择将所有基于根的内容分组到一个中,将所有非基于根的内容分组到另一个中

    整个模式一天比一天复杂得多。我完全同意。如果Angular提供了一个ngModuleRoot装饰器,当您尝试导入外部应用程序启动时,它会自动抛出,这将是一件好事。我觉得这会随着时间的推移而有所改进。部分问题是,如果不查看源代码,您就无法看到
    ngModule
    提供/声明/导出的内容,即使您手头有它,您也必须浏览多个级别。他们应该使用一堆重载函数声明,这些声明使用TypeScript的元组类型来推断这些东西的元素类型,最多20个。@AluanHaddad你是什么意思?你能提供一个要点吗?是的,我会写一个