New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

vue-persistedstate

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue-persistedstate

state management

latest
npmnpm
Version
1.2.5
Version published
Weekly downloads
123
-6.82%
Maintainers
1
Weekly downloads
 
Created
Source

explain

This plug-in is useful for state management because it is impossible to predict how a user will cache, exposing three methods: Storage createVuexPersistedState createPiniaPersistedState

Installation

Package Manager

# npm
npm i vue-persistedstate

# yarn
yarn add vue-persistedstate

Storage example

/**
 * @name: s
 * @param {key:string}
 * @return {value:any}
 * @return {expires:number}
 */
import { Storage } from "vue-persistedstate"

let s = new Storage({source:window.sessionStorage}) //The default value is the window. The localStorage
s.set("userInfo",{uName:"zhangsan",upwd:"123456"},5000)
setInterval(()=>{
console.log(s.get('uName'))  // Undefined is displayed after 5s
},1000)

Vuex example

The createVuexPersistedState method has four parameters

  • Key The default cache key is VUex
  • Storage how caching (window. SessionStorage | | window. The localStorage) default window. The localStorage
  • WhiteList Attributes are cached
  • BlackList Indicates that blackList attributes are not cached
import { createVuexPersistedState } from "vue-persistedstate";

/**
 * @name: createVuexPersistedState
 * @param {key:string}
 * @param {storage}
 * @param {whiteList:Array<string>}
 * @param {blackList:Array<string>}
 * @return {storage}
 */

export default new Vuex.Store({
  plugins: [
    createVuexPersistedState({
      key:'vuex',
      storage:window.localStorage,
      whiteList:[],
      blackList: [],
    }),
  ],
  modules: {},
  state: {},
  mutations: {},
  actions: {},
  modules: {},
});

Pinia example

store.js

import { createPinia } from "pinia";

import { createPiniaPersistedState } from "vue-persistedstate";

const store = createPinia();

store.use(createPiniaPersistedState());
//or
store.use(createPiniaPersistedState({
    key:'You want the cache key',  // Default is pinia- your Module ID
    storage:'The way you want to cache' // The default value is the window. The localStorage
}));

export default store;

modules->moduleJS example

Set whiteList in the module: Array, whiteList is empty or not set to all cache, default is all cache, whiteList can be set to cache other keys do not cache

import { defineStore } from "pinia";
const useUser = defineStore("user", {
  state: () => {
    return {
      userName: "zhangsan",
    };
  },
  getters: {},
  actions: {},
  whiteList: ["userName"], // Only userName is cached
});

export default useUser;

Keywords

vue

FAQs

Package last updated on 26 Apr 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts