1.0.3 • Published 5 months ago

@wsvaio/pinia-plugin-persist v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

@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);
  },
});
1.0.3

5 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

1 year ago

1.0.0-2

1 year ago

1.0.0-1

1 year ago

1.0.0-0

1 year ago

0.0.4-0

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago

0.0.0-1

1 year ago