在页面重装之间实现状态持久性的好方法是什么?现在,我不是在谈论ngrx的状态。我指的是这种情况,当您刷新页面并且所有内容似乎都消失了:用户已注销,所有未保存在后端的更改都消失了,依此类推。
起初,我认为可以使用localStorage进行某种实现,然后在所需的每个组件中的ngOnInit()中初始化所有内容,但这听起来像在发明轮子。我相信应该有一个现成的解决方案或某种模式。
请告知。
答案 0 :(得分:1)
在网络中快速搜索指向ngrx-store-localstorage,这有助于将应用程序状态存储在本地存储中。可以从下面的网站中获得一个示例实现。
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { StoreModule, ActionReducerMap, ActionReducer, MetaReducer } from '@ngrx/store';
import { localStorageSync } from 'ngrx-store-localstorage';
import { reducers } from './reducers';
const reducers: ActionReducerMap<IState> = {todos, visibilityFilter};
export function localStorageSyncReducer(reducer: ActionReducer<any>): ActionReducer<any> {
return localStorageSync({keys: ['todos']})(reducer);
}
const metaReducers: Array<MetaReducer<any, any>> = [localStorageSyncReducer];
@NgModule({
imports: [
BrowserModule,
StoreModule.forRoot(
reducers,
{metaReducers}
)
]
})
export class MyAppModule {}
答案 1 :(得分:0)
您可以将所需的内容存储在localstorage中,这是访问本地存储的写操作(由于提到了ngrx),将其存储在状态中,并且所有组件都可以通过选择器或任何其他首选方式访问该数据。希望有帮助