Aurelia Store 提供了一种内置机制来将状态持久保存在 localStorage 中。
因此,如果您的 initialState 在 main.ts 或 main.js 中初始化,如下所示:
aurelia.use.plugin('aurelia-store', { initialState: initialState });
然后在 app.ts 或 .js 中,您应该注册 localstorage 中间件并执行补液。
因此,在应用程序构造函数中,您可以编写:
import { localStorageMiddleware, rehydrateFromLocalStorage, Store } from 'aurelia-store';
import { initialState, State } from 'state';
...
constructor(
private store: Store<State>,
) {
store.registerMiddleware(localStorageMiddleware, MiddlewarePlacement.After, { key: ¨someKey¨ });
store.registerAction('Rehydrate', rehydrateFromLocalStorage);
}
关于模块化,也许你应该结合 store 和 EventAggregator 来实现更复杂的场景。
祝你好运