Pinia - 基本使用、持久化存储插件

目前最新的Pinia版本是3.x
持久化的理解:将Pinia管理的数据,使用localStorage或sessionStorage管理,专门有相关的插件可实现
3版本的Pinia持久化处理,需要搭配的插件是:pinia-plugin-persistedstate
注意:不要使用pinia-plugin-persist这个插件,插件太老,在pinia3.0版本环境下,安装会报错(不匹配,给出了此插件匹配pinia2.0版本提示)

测试过可以运行的版本如下:
"pinia": "^3.0.1",
"pinia-plugin-persistedstate": "^4.2.0",

pinia-plugin-persistedstate文档:https://www.npmjs.com/package/pinia-plugin-persistedstate
安装:npm i pinia-plugin-persistedstate

【main.js】
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'

const pinia = createPinia()
pinia.use(piniaPluginPersistedstate)

【src/stores/pagetags.js】
import { defineStore } from "pinia";
import { ref } from "vue";

export const pagetagsStore = defineStore(
  "pagetags",
  () => {
    let tags = ref([]);
    function increment(item) {
      tags.value.push(item);
    }
    function deleteItem(i) {
      tags.value.splice(i, 1);
    }
    return { tags, increment, deleteItem };
  },
  {
    persist: {
      storage: sessionStorage,//指定存储方式
      key: "pagetags",//存储的名字,将来sessionStorage.getItem('pagetags')这样可获取
      pick: ["tags"],//指定哪些内容要存储
    },
  }
);

【Pinia在页面中的使用】
import { pagetagsStore } from "@/stores/pagetags";
import { storeToRefs } from 'pinia';

const pagetags = pagetagsStore();
const { tags } = storeToRefs(pagetags);//解构后保证tags还是响应式的

方法直接调用
pagetags.increment({
  menuName: submenu.menuDataName,
  url: submenu.url
});
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值