Pinia 实例清理方法?-灵析社区

七厦

pinia实例 如何清理,持久层设置的是`localstorage`,`localstorage.removeItem` 清空key之后 pinia实例里面还是有,如何清理pinia实例里面的 export const useOpenXLibrary = defineStore({ id: 'useOpenXLibrary', // state: () => { return { OpenXLibrary: {} }; }, getters: { getOpenXLibrary(): Object { return this.OpenXLibrary; } }, actions: { updateOpenXLibrary(OpenXLibrary: Object) { this.OpenXLibrary = OpenXLibrary; }, clearOpenXLibraryStore() { this.OpenXLibrary = {}; } }, persist: true }); // 这是清空localStorage function clearLocalStorage() { const keys = ['useToken', 'useOpenXIdAdd', 'useOpenXLibrary']; for (let i = localStorage.length - 1; i >= 0; i--) { const key = localStorage.key(i) as string; if (!keys.includes(key)) { localStorage.removeItem(key); } } ElMessage.success('????'); router.push({ path: '/' }); } 我是意思想所有的store里面 里面的数据全部clear 如 state里的 OpenXLibrary: {}、ids: []

阅读量:161

点赞量:0

问AI
不是直接调用 "localstorage.removeItem()" 来手动删除 "localstorage" 中的值。而是改写你的 "clearOpenXLibraryStore" 方法,清空 "Pinia" 的值的同时去同步删除 "localstorage" 中对应的内容: actions: { updateOpenXLibrary(OpenXLibrary: Object) { this.OpenXLibrary = OpenXLibrary; + localstorage.setItem('yourLsKey', OpenXLibrary) }, clearOpenXLibraryStore() { this.OpenXLibrary = {}; + localstorage.removeItem('yourLsKey') } } 没有用到 "vue-use" 库,如果你用了 "useStorage" (https://link.segmentfault.com/?enc=kuzr9kKRHfcxDmmmM%2B6MAQ%3D%3D.mNYoDxnA%2FI7UJkSa8ljLGXzLWudS0u57UVG9fwQg0GU9zDEgK9imKj6B6UQXz%2Bzf) 会更简单一些。