vue3 详细配置 pinia,以及持久化处理
安装pinia
pnpm install pinia
pnpm install pinia-plugin-persistedstate
使用pinia
-
根目录下创建store文件夹,新家moudules文件夹和index.ts文件,如图:
-
index.ts 文件
// store/index.ts
// 仓库大仓库
import { createPinia } from "pinia";
import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
// 引入模块仓库
import { useUserInfoStore } from './moudules/userInfo'
// 创建大仓库
const pinia = createPinia();
pinia.use(piniaPluginPersistedstate);
export {
pinia,
useUserInfoStore
}
- userInfo.ts 文件
import { defineStore } from 'pinia';
export const useUserInfoStore = defineStore(
'useUserInfoStore',
() => {
const someState = ref('你好 pinia')
return {
someState,
}
},
{
// 配置持久化
persist: {
// 调整为兼容多端的API
storage: {
setItem(key, value) {
uni.setStorageSync(key, value)
},
getItem(key) {
return uni.getStorageSync(key)
},
},
},
},
);
- main.ts 文件
// #ifdef VUE3
import { createSSRApp } from 'vue'
import App from "./App.vue";
import uviewPlus, { setConfig } from 'uview-plus';
// import { createPinia } from 'pinia'
import { pinia } from './store';
export function createApp() {
const app = createSSRApp(App)
app.use(uviewPlus)
app.use(pinia);
// app.use(useStore); // 使用 store
setConfig({
// 修改$u.config对象的属性
config: {
// 修改默认单位为rpx,相当于执行 uni.$u.config.unit = 'rpx'
unit: 'rpx'
},
// 修改$u.props对象的属性
props: {
// 修改radio组件的size参数的默认值,相当于执行 uni.$u.props.radio.size = 30
radio: {
size: 16
}
// 其他组件属性配置
}
})
return {
app,
pinia
}
}
// #endif
分类:
Vue 合集 / Vue3
, 第三方插件库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)