我正在多个使用 vuex-persistedstate 的 Vue 站点上工作。我在它们之间重用了某些模块,例如身份验证。当我在它们之间切换时,我在状态中有相同的用户对象。
我想这可能与域相同(localhost:8000)有关,但是有没有办法解决这个问题?简单的事实是,每次在应用之间切换时手动删除所有数据并不有趣。
答案 0 :(得分:0)
您可以尝试为每个应用分配一个唯一的前缀(也可以是后缀)。然后,您可以在 getItem
中设置 setItem
、removeItem
和 createPersistedState
方法。例如:
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(或任何其他类型的存储)一起使用。