pinia-plugin-unstorage
pinia-plugin-unstorage

Configurable persistence and rehydration of Pinia stores.

pinia-plugin-unstorage

The best persistence plugin for pinia.

!TIP The persistence logic of this plugin is implemented based on unstorage, which provide unified key-value storage API. Based on this, you can even persist the data to the database

Install

pnpm add pinia-plugin-unstorage

Usage

Vue app

import { createPinia } from 'pinia'
import { createPiniaUnstorage } from 'pinia-plugin-unstorage'

const pinia = createPinia()
pinia.use(
    createPiniaUnstorage({
        // UnstorageOptions
    }),
)

Nuxt app

export default defineNuxtConfig({
    modules: ['@pinia/nuxt', 'pinia-plugin-unstorage/nuxt'],
    piniaUnstorage: {
        // UnstorageOptions
    },
})

Options

Plugin options

interface UnstorageOptions {
    namespace: string // prefix str to as storage key
    driver: Driver // the storage instance in unstorage
}

Store options

export const useStore = defineStore(
    'store',
    () => {
        // ...
    },
    {
        unstorage: {
            pick: [], // string[], state keys picked to storage
            omit: [], // string[], state keys omitted fot storage
        },
    },
)