状态在多个应用程序之间共享。 - vuex 持久化状态

时间:2021-02-13 19:06:41

标签: vue.js vuex

我正在多个使用 vuex-persistedstate 的 Vue 站点上工作。我在它们之间重用了某些模块,例如身份验证。当我在它们之间切换时,我在状态中有相同的用户对象。

我想这可能与域相同(localhost:8000)有关,但是有没有办法解决这个问题?简单的事实是,每次在应用之间切换时手动删除所有数据并不有趣。

1 个答案:

答案 0 :(得分:0)

您可以尝试为每个应用分配一个唯一的前缀(也可以是后缀)。然后,您可以在 getItem 中设置 setItemremoveItemcreatePersistedState 方法。例如:

import { Store } from 'vuex';
import createPersistedState from 'vuex-persistedstate';

const KEY_PREFIX = 'PrefixUniqueToEachApp_';

const store = new Store({
  plugins: [
    createPersistedState({
      storage: {
        getItem: (key) => localStorage.getItem(KEY_PREFIX + key),
        setItem: (key, value) => localStorage.setItem(KEY_PREFIX + key, value),
        removeItem: (key) => localStorage.removeItem(KEY_PREFIX + key),
      },
    }),
  ],
});

应该可以。如果您愿意,您也可以将其与 cookie(或任何其他类型的存储)一起使用。