本地和会话存储之间的 NGXS 存储插件更改
NGXS storage-plugin change between local & session storage
我在 @ngxs/storage-plugin
中使用 NGXS。当我在模块中导入插件时,我可以通过 storage
选项将插件配置为使用 localStorage
或 sessionStorage
。
当用户在登录时选中 "remember me" 选项时,我的应用程序应该使用 localStorage
,而当他不会使用 "remember me" 选项时,我的应用程序应该使用 sessionStorage
。
有什么想法可以用 @ngxs/storage-plugin
实现吗?
@NgModule({
imports: [
CommonModule,
NgxsModule.forRoot(STATES_MODULES, OPTIONS_CONFIG),
NgxsStoragePluginModule.forRoot({storage: '????'}),
NgxsReduxDevtoolsPluginModule.forRoot(DEVTOOLS_REDUX_CONFIG),
NgxsLoggerPluginModule.forRoot(LOGGER_CONFIG)
],
exports: [NgxsModule]
})
export class NgxsStoreModule {}
我会使用自定义存储引擎:
https://www.ngxs.io/plugins/storage#custom-storage-engine
如果您可以控制您的存储引擎,那也许行得通。不确定您是否可以使用 angular 的 DI 注入 store/something else 以确定用户是否试图设置 'rememberMe'。
export class MyStorageEngine implements StorageEngine {
....
setItem(key: string, val: any): void {
if (rememberMe) {
// set with localStorage
} else {
// set with sessionStorage
}
}
....
}
我在 @ngxs/storage-plugin
中使用 NGXS。当我在模块中导入插件时,我可以通过 storage
选项将插件配置为使用 localStorage
或 sessionStorage
。
当用户在登录时选中 "remember me" 选项时,我的应用程序应该使用 localStorage
,而当他不会使用 "remember me" 选项时,我的应用程序应该使用 sessionStorage
。
有什么想法可以用 @ngxs/storage-plugin
实现吗?
@NgModule({
imports: [
CommonModule,
NgxsModule.forRoot(STATES_MODULES, OPTIONS_CONFIG),
NgxsStoragePluginModule.forRoot({storage: '????'}),
NgxsReduxDevtoolsPluginModule.forRoot(DEVTOOLS_REDUX_CONFIG),
NgxsLoggerPluginModule.forRoot(LOGGER_CONFIG)
],
exports: [NgxsModule]
})
export class NgxsStoreModule {}
我会使用自定义存储引擎: https://www.ngxs.io/plugins/storage#custom-storage-engine
如果您可以控制您的存储引擎,那也许行得通。不确定您是否可以使用 angular 的 DI 注入 store/something else 以确定用户是否试图设置 'rememberMe'。
export class MyStorageEngine implements StorageEngine {
....
setItem(key: string, val: any): void {
if (rememberMe) {
// set with localStorage
} else {
// set with sessionStorage
}
}
....
}