Pinia
createPiniaPersist() (vue-storage-kit/pinia) — плагин Pinia, который автоматически делает персистентным состояние каждого хранилища, по умолчанию ключуясь по собственному $id хранилища.
import { createPinia } from 'pinia'
import { createPiniaPersist } from 'vue-storage-kit/pinia'
const pinia = createPinia()
pinia.use(createPiniaPersist({ target: 'local' }))После установки каждое хранилище, созданное из этого экземпляра pinia, становится персистентным с одними и теми же опциями — конфигурации на уровне отдельного хранилища нет; выделите отдельный вызов pinia.use() (или второй экземпляр Pinia), если разным хранилищам нужны разные target/pick/omit.
Опции
key
string · по умолчанию: собственный $id хранилища
Ключ хранилища, под которым сохраняются данные.
target
StorageTarget · по умолчанию: 'local'
pick
string[]
Сохранять только эти ключи состояния. Взаимоисключающе с omit — если заданы оба, побеждает pick.
omit
string[]
Сохранять каждый ключ состояния, кроме этих.
serializer
Serializer<unknown> · по умолчанию: JSON-сериализатор
beforeRestore
(ctx: PiniaPluginContext) => void
Вызывается непосредственно перед применением восстановленного значения к состоянию хранилища.
afterRestore
(ctx: PiniaPluginContext) => void
Вызывается сразу после применения восстановленного значения.
onError
(err: StorageError) => void
Вызывается при сбое чтения/записи/парсинга вместо выброса исключения.
Пример
import { createPinia, defineStore } from 'pinia'
import { createPiniaPersist } from 'vue-storage-kit/pinia'
const pinia = createPinia()
pinia.use(
createPiniaPersist({
target: 'local',
omit: ['transientUiFlag'],
onError: (err) => console.error('Persist failed:', err),
}),
)
const useSettings = defineStore('settings', {
state: () => ({ theme: 'light', transientUiFlag: false }),
})
// Чтение/запись `theme` в этом хранилище теперь автоматически проходит
// через localStorage под ключом "settings".Восстановление выполняется асинхронно (адаптер может быть на базе IndexedDB) — мутация, сделанная в той же синхронной итерации, что и создание хранилища, никогда не будет молча отменена более медленно разрешающимся восстановлением, так что безопасно устанавливать начальные переопределения сразу после создания хранилища.