我正在审查如何在GH上的示例应用程序中实现ngrx。谁能解释一下为什么在下面的链接中有两个模块在一个文件中?开发人员有什么理由用两个模块代替一个模块?
Github link - auth module in ngrx library example app
编辑-同样的功能可以用一个模块本身来实现。为什么要创建两个模块?这里的功能划分是什么?
编辑-2-我找到了两个模块用于身份验证的原因。开发者需要导出auth service和auth Guard等服务,供app模块和其他模块使用。为此,他创建了AuthModule,其中包含用于导出服务的forRoot静态方法。
另一个RootAuthModule具有用于html表单的组件,用于获取用户输入并分派用于身份验证的操作。此模块是延迟加载的,不需要导出任何组件或任何服务以供其他模块使用。
发布于 2018-03-14 17:46:47
您可以根据需要组织文件,但请记住,不建议将两个模块放在一个文件中:https://angular.io/guide/styleguide#rule-of-one
发布于 2018-03-14 17:44:51
相同的文件
这两个模块都很小,开发人员认为没有必要将其拆分为两个单独的文件。它们彼此非常相似,因此将它们放在同一个文件中是有意义的。我不认为有什么特别的原因,因为它根本不会改变大局。如果开发人员觉得它们在某一点上变得太大,可以稍后将它们分开。
两个模块
至于为什么有两个模块:一个在根级别使用,另一个在子级使用。这种区别最常见的例子是将.forRoot
和.forChildren
与来自@angular/router
包的官方RouterModule
一起使用。在这里,NGRX团队决定使用一个带有forRoot
方法的模块和另一个用于孩子的模块(因为它不需要任何参数),而不是两个静态方法。
你可以阅读更多关于the difference between forRoot
and forChild
here的内容。
https://stackoverflow.com/questions/49284418
复制相似问题