@wsvaio/pinia-plugin-persist
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

@wsvaio/pinia-plugin-persist

pinia 持久化辅助插件

Size Version Languages License Star Download

快速使用

import { createPinia } from "pinia";
import piniaPluginPersist from "@wsvaio/pinia-plugin-persist";
const pinia = createPinia();
pinia.use(piniaPluginPersist());
defineStore("xxx", {
  ...
  persist: true,
  ...
});

配置

全局与局部配置

在 pinia 注册插件时只有 key、getter、setter 的配置 在每个 defineStore 中的配置有 key、getter、setter、incldue、exclude 配置,或是一个布尔值,用于快速启用

全局配置会作为局部配置的默认值 局部配置可以是一个布尔值、一个对象,也可以为一个数组!

key

定义持久化的 key 名,需要确保唯一性 默认为 publicKey + & + store.$id + & + index

getter & setter

定义如何获取和设置持久化,默认设置至 localStorage 可以通过 this 访问 store 实例

setter(key, value) {
  console.log(this); // 访问store
  localStorage.setItem(key, JSON.stringify(value));
},
getter(key) {
  return JSON.parse(String(localStorage.getItem(key)))
}

include & exclude

定义要持久化的属性名,include 包含、exclude 排除,优先级:exclude > include 默认 include 包含所有,exclude 为空

includes: ['a', 'b', 'c.a', 'c.b'],
excludes: ['a', 'b', 'c.a', 'c.b'],

UNIAPP

通过设置全局的 getter 和 setter,可以兼容微信小程序

piniaPluginPersist({
  setter(key, value) {
    uni.setStorageSync(key, value);
  },
  getter(key) {
    return uni.getStorageSync(key);
  },
});

Package Sidebar

Install

npm i @wsvaio/pinia-plugin-persist

Weekly Downloads

11

Version

1.0.3

License

MIT

Unpacked Size

11.1 kB

Total Files

6

Last publish

Collaborators

  • wscloud