首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Aurelia Store中执行状态保持

在Aurelia Store中执行状态保持
EN

Stack Overflow用户
提问于 2020-12-23 15:47:32
回答 1查看 83关注 0票数 0

我们有一个基本的应用程序状态,需要在浏览器刷新时持久化。类似于vuex-state-persistance插件。下面是需要持久化的基本状态代码。

代码语言:javascript
复制
export const initialState = {
    user: {
        uuid: 'wedRfertYjsnjnakUiisdj878HBhsns',
        name: 'Kiran Maniya',
        scope: 'user'
    }
};

有没有什么东西可以直接用作插件,或者我需要编写一个自定义插件来异步地保存localStorage中的状态?另外,当我们有一个复杂和大的状态要管理时,我们如何模块化状态?

EN

回答 1

Stack Overflow用户

发布于 2020-12-24 09:09:48

Aurelia Store提供了一个在localStorage中持久化状态的内置机制。

因此,如果您的initialState在main.ts或main.js中初始化,如下所示:

代码语言:javascript
复制
aurelia.use.plugin('aurelia-store', { initialState: initialState });

然后,在app.ts或.js中,您应该注册本地存储中间件并执行恢复消重数据。

因此,在应用程序构造函数中,您可以这样写:

代码语言:javascript
复制
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);
}

关于模块化,也许你应该结合存储和EventAggregator来实现更复杂的场景。

祝好运

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65420687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档