想要在 uniapp
里面使用 pinia-plugin-persistedstate
会遇到的问题就是 uniapp里面没有浏览器里面的 sessionStorage localStorage
这些 api
。
我们只需要替换掉 pinia-plugin-persistedstate
默认的储存 api
就可以了。使用 createPersistedState 重新创建一个实例, 把里面的 storage 的参数修改为对应的 uniapp 里面的 storage api 就可以. 已经提取在 customStorage 函数里面了.文章来源地址https://www.toymoban.com/news/detail-715907.html
import 'virtual:uno.css'
import { createSSRApp } from "vue";
import uviewPlus from 'uview-plus'
import { createPinia } from 'pinia'
import { createPersistedState } from 'pinia-plugin-persistedstate'
import App from "./App.vue";
export function createApp() {
const pinia = createPinia()
pinia.use(customStorage())
const app = createSSRApp(App);
app.use(uviewPlus)
app.use(pinia)
return {
app,
pinia
};
}
/**
* @description 自定义pinia持久化api储存方式为 unisetStorageSync
* @returns
*/
function customStorage() {
return createPersistedState({
storage: {
getItem(key: string) {
return uni.getStorageSync(key)
},
setItem(key: string, value: any) {
uni.setStorageSync(key, value)
}
}
})
}
文章来源:https://www.toymoban.com/news/detail-715907.html
到了这里,关于如何在 uniapp 里面使用 pinia 数据持久化 (pinia-plugin-persistedstate)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!