有没有办法在库中隔离 NGXS 存储?
Is there a way to isolate the NGXS store in a llibrary?
我们正在我们的应用程序 (=APP1) 中使用 NGXS 商店:
NgxsModule.forRoot()
现在我们将该应用程序的一部分分离到一个库组件/单独的 npm 包 (=LIB) 中。该组件还使用 NGXS 来处理其状态,它使用:
NgxsModule.forFeature()
初始化自己的自定义状态。
到目前为止一切顺利,但现在我们想将 LIB 包含到另一个不使用 NGXS 的应用程序 (=APP2) 中,因此不使用:
NgxsModule.forRoot()
问题是:如何在APP2中包含LIB而不需要APP2需要知道LIB中有NGX存储。对APP2应该是透明的。
在此先感谢您的帮助和想法!
您必须使用路标拆分您的图书馆。这是一篇很棒的文章,可以让您走上正确的道路:
对于我的用例,我可以这样处理:
在库中我导出了两个模块:
@NgModule({
imports: [NgxsModule.forFeature([...])
})
export class FeatureModule{}
@NgModule({
imports: [
FeatureModule,
NgxsModule.forRoot()
]
})
export class RootModule {}
我们为其他用户记录了 RootModule,并通过我们的应用程序使用了 FeatureModule。
我们正在我们的应用程序 (=APP1) 中使用 NGXS 商店:
NgxsModule.forRoot()
现在我们将该应用程序的一部分分离到一个库组件/单独的 npm 包 (=LIB) 中。该组件还使用 NGXS 来处理其状态,它使用:
NgxsModule.forFeature()
初始化自己的自定义状态。
到目前为止一切顺利,但现在我们想将 LIB 包含到另一个不使用 NGXS 的应用程序 (=APP2) 中,因此不使用:
NgxsModule.forRoot()
问题是:如何在APP2中包含LIB而不需要APP2需要知道LIB中有NGX存储。对APP2应该是透明的。
在此先感谢您的帮助和想法!
您必须使用路标拆分您的图书馆。这是一篇很棒的文章,可以让您走上正确的道路:
对于我的用例,我可以这样处理:
在库中我导出了两个模块:
@NgModule({
imports: [NgxsModule.forFeature([...])
})
export class FeatureModule{}
@NgModule({
imports: [
FeatureModule,
NgxsModule.forRoot()
]
})
export class RootModule {}
我们为其他用户记录了 RootModule,并通过我们的应用程序使用了 FeatureModule。