uniapp中使用pinia 以及持久化插件

1.下载 npm/yarn

         pinia

         pinia-plugin-persistedstate: "3.2.3",

这里指定版本下载,默认下载是 4.x以上的版本  与pinia使用 会报错

2.main.js

import { createSSRApp } from 'vue'

import pinia from './store'

import App from './App.vue'
export function createApp() {
  const app = createSSRApp(App)

  app.use(pinia)
  return {
    app,
  }
}

3.store/index.js

import { createPinia } from 'pinia'
import persist from 'pinia-plugin-persistedstate'

// 创建 pinia 实例
const pinia = createPinia()
// 使用持久化存储插件
pinia.use(persist)

// 默认导出,给 main.js 使用
export default pinia

// 模块统一导出
export * from './modules/user'

4.store/modules/user.js

import { defineStore } from 'pinia'
import { ref } from 'vue'

// 定义 Store
export const useUserStore = defineStore(
  'user',
  () => {
  
    // 记得 return
    return {
     
    }
  },
  // TODO: 持久化
  {
    //网页端配置
    // persist: true,
    //小程序配置
    persist: {
      storage: {
        getItem(key) {
          return uni.getStorageSync(key)
        },
        setItem(key, value) {
          uni.setStorageSync(key, value)
        },
      },
    },
  },
)

使用 setup 语法抒写

ref() 就是 state 属性

const token = ref()

computed() 就是 getters

const temp = computed(()=>token.value++)

function() 就是 actions

const temp = ()=>{}

uni-app使用 Pinia 和 Vuex 进行状态管理并实现数据持久化的步骤如下: 1. **安装依赖**:首先需要在项目中安装 Vue.js 的官方状态管理模式 Vuex 和 Pinia。你可以通过 `npm` 或者 `yarn` 来安装: ``` npm install vue@next pinia vuex-persistedstate ``` 2. **创建 Pinia store**:在 `src/store` 目录下创建一个名为 `store.ts` 的文件,导入 Pinia 并配置你的 state、getters、actions 和 mutations: ```ts import { createStore } from '@vue/pinia' import { persistStore, autoPersist } from 'vuex-persistedstate' export const store = createStore({ id: 'your-store-name', state() {}, getters: {}, actions: {}, mutations: {} }) ``` 3. **设置存储插件**:为了实现数据持久化,我们需要启用 vuex-persistedstate 插件,并将其连接到 Pinia store 上。在 main.ts 或 main.js 中: ```js import { createApp } from 'vue' import App from './App.vue' import store from './store' import persistedState from 'vuex-persistedstate' persistedState(store) // 如果你想自动保存状态,在 store 初始化时添加以下代码 // 注意这会立即保存当前的状态 autoPersist({ key: 'pinia-storage', // 自定义存储键名 storage: window.localStorage, }) const app = createApp(App) app.use(store) // ...其他组件注册等 app.mount('#app') ``` 4. **处理数据同步**:在需要将数据从 store 保存到本地(如用户离开页面前)和从本地恢复到 store(如重新加载应用时)的地方,可以调用相应的 getter 获取数据然后手动触发 mutation 进行操作。 5.
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值