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

State is shared between multiple applications. - vuex-persistedstate

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

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

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

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(或任何其他类型的存储)一起使用。