Skip to content
Перевод синхронизирован с документацией от , хэш коммита 59ec609.

Документация API / pinia

Модуль: pinia

Перечисления

Интерфейсы

Псевдонимы типов

PiniaStorePlugin

Ƭ PiniaStorePlugin: PiniaPlugin

Плагин для расширения каждого из хранилищ.

Устарело

заместо этого используйте PiniaPlugin


StateTree

Ƭ StateTree: Record<string | number | symbol, any>

Основное состояние хранилища


Store

Ƭ Store<Id, S, G, A>: _StoreWithState<Id, S, G, A> & UnwrapRef<S> & _StoreWithGetters<G> & _ActionsTree extends A ? {} : A & PiniaCustomProperties<Id, S, G, A> & PiniaCustomStateProperties<S>

Тип хранилища для его создания.

Параметры типа

НазваниеТип
Idextends string = string
Sextends StateTree = {}
G{}
A{}

StoreActions

Ƭ StoreActions<SS>: SS extends Store<string, StateTree, _GettersTree<StateTree>, infer A> ? A : _ExtractActionsFromSetupStore<SS>

Извлечение действий по типу хранилища. Работает как с setup-хранилищем, так и с option.

Параметры типа

Название
SS

StoreGeneric

Ƭ StoreGeneric: Store<string, StateTree, _GettersTree<StateTree>, _ActionsTree>

Общая и не типо-безопасная версия хранилища. Не вызывает ошибки при доступе через строки, что значительно упрощает написание общих функций, которым не важно, какой тип хранилища передан.


StoreGetters

Ƭ StoreGetters<SS>: SS extends Store<string, StateTree, infer G, _ActionsTree> ? _StoreWithGetters<G> : _ExtractGettersFromSetupStore<SS>

Извлечение геттеров по типу хранилища. Работает как с setup-хранилищем, так и с option.

Параметры типа

Название
SS

StoreOnActionListener

Ƭ StoreOnActionListener<Id, S, G, A>: (context: StoreOnActionListenerContext<Id, S, G, {} extends A ? _ActionsTree : A>) => void

Аргумент store.$onAction()

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree
GG
AA

Объявление типа

▸ (context): void

Параметры
НазваниеТип
contextStoreOnActionListenerContext<Id, S, G, {} extends A ? _ActionsTree : A>
Возвращает

void


StoreOnActionListenerContext

Ƭ StoreOnActionListenerContext<Id, S, G, A>: _ActionsTree extends A ? _StoreOnActionListenerContext<StoreGeneric, string, _ActionsTree> : { [Name in keyof A]: Name extends string ? _StoreOnActionListenerContext<Store<Id, S, G, A>, Name, A> : never }[keyof A]

Объект контекста, передаваемый в коллбеки store.$onAction(context => {}). TODO: должен иметь только Id, хранилище и действия для генерации соответствующего объекта

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree
GG
AA

StoreState

Ƭ StoreState<SS>: SS extends Store<string, infer S, _GettersTree<StateTree>, _ActionsTree> ? UnwrapRef<S> : _ExtractStateFromSetupStore<SS>

Извлечение состояния по типу хранилища. Работает как с setup-хранилищем, так и с option.

Параметры типа

Название
SS

SubscriptionCallback

Ƭ SubscriptionCallback<S>: (mutation: SubscriptionCallbackMutation<S>, state: UnwrapRef<S>) => void

Коллбек подписки

Параметры типа

Название
S

Объявление типа

▸ (mutation, state): void

Параметры
НазваниеТип
mutationSubscriptionCallbackMutation<S>
stateUnwrapRef<S>
Возвращает

void


SubscriptionCallbackMutation

Ƭ SubscriptionCallbackMutation<S>: SubscriptionCallbackMutationDirect | SubscriptionCallbackMutationPatchObject<S> | SubscriptionCallbackMutationPatchFunction

Объект контекста, который был передан коллбеку подписки.

Параметры типа

Название
S

_ActionsTree

Ƭ _ActionsTree: Record<string, _Method>

Тип объекта действий. Только для внутреннего использования


_Awaited

Ƭ _Awaited<T>: T extends null | undefined ? T : T extends object & { then: (onfulfilled: F) => any } ? F extends (value: infer V, ...args: any) => any ? _Awaited<V> : never : T

Параметры типа

Название
T

_DeepPartial

Ƭ _DeepPartial<T>: { [K in keyof T]?: _DeepPartial<T[K]> }

Рекурсивный Partial<T>. Используется в методе ['$patch'].

Только для внутреннего использования

Параметры типа

Название
T

_ExtractActionsFromSetupStore

Ƭ _ExtractActionsFromSetupStore<SS>: SS extends undefined | void ? {} : _ExtractActionsFromSetupStore_Keys<SS> extends keyof SS ? Pick<SS, _ExtractActionsFromSetupStore_Keys<SS>> : never

Только для внутреннего использования

Параметры типа

Название
SS

_ExtractActionsFromSetupStore_Keys

Ƭ _ExtractActionsFromSetupStore_Keys<SS>: keyof { [K in keyof SS as SS[K] extends _Method ? K : never]: any }

Тип, позволяющий осуществлять рефакторинг через IDE. Только для внутреннего использования

Параметры типа

Название
SS

_ExtractGettersFromSetupStore

Ƭ _ExtractGettersFromSetupStore<SS>: SS extends undefined | void ? {} : _ExtractGettersFromSetupStore_Keys<SS> extends keyof SS ? Pick<SS, _ExtractGettersFromSetupStore_Keys<SS>> : never

Только для внутреннего использования

Параметры типа

Название
SS

_ExtractGettersFromSetupStore_Keys

Ƭ _ExtractGettersFromSetupStore_Keys<SS>: keyof { [K in keyof SS as SS[K] extends ComputedRef ? K : never]: any }

Тип, позволяющий осуществлять рефакторинг через IDE. Только для внутреннего использования

Параметры типа

Название
SS

_ExtractStateFromSetupStore

Ƭ _ExtractStateFromSetupStore<SS>: SS extends undefined | void ? {} : _ExtractStateFromSetupStore_Keys<SS> extends keyof SS ? _UnwrapAll<Pick<SS, _ExtractStateFromSetupStore_Keys<SS>>> : never

Только для внутреннего использования

Параметры типа

Название
SS

_ExtractStateFromSetupStore_Keys

Ƭ _ExtractStateFromSetupStore_Keys<SS>: keyof { [K in keyof SS as SS[K] extends _Method | ComputedRef ? never : K]: any }

Тип, позволяющий осуществлять рефакторинг через IDE. Только для внутреннего использования

Параметры типа

Название
SS

_GettersTree

Ƭ _GettersTree<S>: Record<string, (state: UnwrapRef<S> & UnwrapRef<PiniaCustomStateProperties<S>>) => any | () => any>

Тип объекта геттеров, которые получают аргумент. Только для внутреннего использования

Параметры типа

НазваниеТип
Sextends StateTree

_MapActionsObjectReturn

Ƭ _MapActionsObjectReturn<A, T>: { [key in keyof T]: A[T[key]] }

Только для внутреннего использования

Параметры типа

НазваниеТип
AA
Textends Record<string, keyof A>

_MapActionsReturn

Ƭ _MapActionsReturn<A>: { [key in keyof A]: A[key] }

Только для внутреннего использования

Параметры типа

Название
A

_MapStateObjectReturn

Ƭ _MapStateObjectReturn<Id, S, G, A, T>: { [key in keyof T]: Function }

Только для внутреннего использования

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree
Gextends _GettersTree<S> | { [key: string]: ComputedRef; }
AA
Textends Record<string, keyof S | keyof G | (store: Store<Id, S, G, A>) => any> = {}

_MapStateReturn

Ƭ _MapStateReturn<S, G, Keys>: { [key in Keys]: Function }

Только для внутреннего использования

Параметры типа

| Название | Тип | | :------- | :------------------------------------------------------ --- --- --- --- --- --- --- --- -- | | S | extends StateTree | | G | extends _GettersTree<S> | { [key: string]: ComputedRef; } | | Keys | extends keyof S | keyof G = keyof S | keyof G |


_MapWritableStateObjectReturn

Ƭ _MapWritableStateObjectReturn<S, T>: { [key in keyof T]: Object }

Только для внутреннего использования

Параметры типа

НазваниеТип
Sextends StateTree
Textends Record<string, keyof S>

_MapWritableStateReturn

Ƭ _MapWritableStateReturn<S>: { [key in keyof S]: Object }

Только для внутреннего использования

Параметры типа

НазваниеТип
Sextends StateTree

_Method

Ƭ _Method: (...args: any[]) => any

Общий тип для функции, которая может получать аргументы и возвращать тип Только для внутреннего использования

Параметры

Описание типа

▸ (...args): any

НазваниеТип
...argsany[]
Возвращает

any


_Spread

Ƭ _Spread<A>: A extends [infer L, ...(infer R)] ? _StoreObject<L> & _Spread<R> : unknown

Только для внутреннего использования.

Параметры типа

НазваниеТип
Aextends readonly any[]

_StoreObject

Ƭ _StoreObject<S>: S extends StoreDefinition<infer Ids, infer State, infer Getters, infer Actions> ? { [Id in `${Ids}${MapStoresCustomization extends Record<"suffix", infer Suffix> ? Suffix : "Store"}`]: Function } : {}

Только для внутреннего использования.

Параметры типа

Название
S

_StoreWithActions

Ƭ _StoreWithActions<A>: { [k in keyof A]: A[k] extends Function ? Function : never }

Хранилище, дополненное действиями. Только для внутреннего использования

Параметры типа

Название
A

_StoreWithGetters

Ƭ _StoreWithGetters<G>: { readonly [k in keyof G]: G[k] extends Function ? R : UnwrapRef<G[k]> }

Хранилище, дополненное геттерами. Только для внутреннего использования

Параметры типа

Название
G

_UnwrapAll

Ƭ _UnwrapAll<SS>: { [K in keyof SS]: UnwrapRef<SS[K]> }

Тип, позволяющий осуществлять рефакторинг через IDE. Только для внутреннего использования

Параметры типа

Название
SS

Переменные

PiniaVuePlugin

Const PiniaVuePlugin: Plugin

Vue 2 Plugin, который должен быть установлен для работы pinia. Примечание: вам не нужен этот плагин, если вы используете Nuxt.js. Вместо него используйте buildModule: https://pinia.vuejs.org/ssr/nuxt.html.

Пример

js
import Vue from 'vue'
import { PiniaVuePlugin, createPinia } from 'pinia'

Vue.use(PiniaVuePlugin)
const pinia = createPinia()

new Vue({
  el: '#app',
  // ...
  pinia,
})

Параметры

Vue, импортированный из 'vue'.

Функции

acceptHMRUpdate

acceptHMRUpdate<Id, S, G, A>(initialUseStore, hot): (newModule: any) => any

Создает функцию accept для передачи в import.meta.hot в приложениях Vite.

Параметры типа

НазваниеТип
Idextends string = string
Sextends StateTree = StateTree
Gextends _GettersTree<S> = _GettersTree<S>
A_ActionsTree

Параметры

НазваниеТипОписание
initialUseStoreStoreDefinition<Id, S, G, A>return of the defineStore to hot update
hotanyimport.meta.hot

Возвращает

fn

▸ (newModule): any

Параметры
НазваниеТип
newModuleany
Возвращает

any

Пример

js
const useUser = defineStore(...)
if (import.meta.hot) {
  import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))
}

createPinia

createPinia(): Pinia

Создает экземпляр Pinia, который будет использоваться приложением

Возвращает

Pinia


defineStore

defineStore<Id, S, G, A>(id, options): StoreDefinition<Id, S, G, A>

Создает функцию useStore, которая извлекает экземпляр хранилища

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree = {}
Gextends _GettersTree<S> = {}
A{}

Параметры

НазваниеТипОписание
idIdid of the store (must be unique)
optionsOmit<DefineStoreOptions<Id, S, G, A>, "id">options to define the store

Возвращает

StoreDefinition<Id, S, G, A>

defineStore<Id, S, G, A>(options): StoreDefinition<Id, S, G, A>

Создает функцию useStore, которая извлекает экземпляр хранилища

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree = {}
Gextends _GettersTree<S> = {}
A{}

Параметры

НазваниеТипОписание
optionsDefineStoreOptionsё<Id, S, G, A>options to define the store

Возвращает

StoreDefinition<Id, S, G, A>

defineStore<Id, SS>(id, storeSetup, options?): StoreDefinition<Id, _ExtractStateFromSetupStore<SS>, _ExtractGettersFromSetupStore<SS>, _ExtractActionsFromSetupStore<SS>>

Создает функцию useStore, которая извлекает экземпляр хранилища

Параметры типа

НазваниеТип
Idextends string
SSSS

Параметры

НазваниеТипОписание
idIdid хранилища (должно быть уникальным)
storeSetup() => SSфункция, определяющая хранилище
options?DefineSetupStoreOptions<Id, _ExtractStateFromSetupStore<SS>, _ExtractGettersFromSetupStore<SS>, _ExtractActionsFromSetupStore<SS>>дополнительные опции

Возвращает

StoreDefinition<Id, _ExtractStateFromSetupStore<SS>, _ExtractGettersFromSetupStore<SS>, _ExtractActionsFromSetupStore<SS>>


disposePinia

disposePinia(pinia): void

Завершает работу экземпляра Pinia, останавливая его effectScope, удаляя состояние, плагины и хранилища. Это полезно в основном для тестов, как с тестовым экземпляром Pinia, так и с обычным, а также в приложениях, использующих несколько экземпляров Pinia. После удаления экземпляра pinia его больше нельзя использовать.

Параметры

НазваниеТипОписание
piniaPiniaэкземпляр pinia

Возвращает

void


getActivePinia

getActivePinia(): undefined | Pinia

Получить текущий активный экземпляр pinia, если таковой имеется.

Возвращает

undefined | Pinia


mapActions

mapActions<Id, S, G, A, KeyMapper>(useStore, keyMapper): _MapActionsObjectReturn<A, KeyMapper>

Позволяет напрямую использовать действия из вашего хранилища без использования composition API (setup()) путем создания объекта, который можно добавить в поле methods компонента. Значения объекта представляют собой сами действия, а ключи - имена методов в компоненте.

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree
Gextends _GettersTree<S>
AA
KeyMapperextends Record<string, keyof A>

Параметры

НазваниеТипОписание
useStoreStoreDefinition<Id, S, G, A>хранилище, из которого нужно добавить действия
keyMapperKeyMapperобъект для определения новых названий действий в компоненте

Возвращает

_MapActionsObjectReturn<A, KeyMapper>

Пример

js
export default {
  methods: {
    ...mapActions(useCounterStore, { moar: 'increment', setIt: 'setCount' })
    // другие методы компонента
    // useCounterStore имеет два действия с именами `increment` и `setCount`
  },

  created() {
    this.moar()
    this.setIt(2)
  }
}

mapActions<Id, S, G, A>(useStore, keys): _MapActionsReturn<A>

Позволяет напрямую использовать действия из вашего хранилища без использования composition API (setup()) путем создания объекта, который можно добавить в поле methods компонента.

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree
Gextends _GettersTree<S>
AA

Параметры

НазваниеТипDescription
useStoreStoreDefinition<Id, S, G, A>хранилище, из которого нужно добавить действия
keyskeyof A[]массив названий действия для добавления

Возвращает

_MapActionsReturn<A>

Пример

js
export default {
  methods: {
    // другие методы компонента
    ...mapActions(useCounterStore, ['increment', 'setCount']),
  },

  created() {
    this.increment()
    this.setCount(2) // передача аргументов производится как обычно
  }
}

mapGetters

mapGetters<Id, S, G, A, KeyMapper>(useStore, keyMapper): _MapStateObjectReturn<Id, S, G, A, KeyMapper>

Псевдоним для mapState(). Заместо этого вы должны использовать mapState().

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree
Gextends _GettersTree<S> | { [key: string]: ComputedRef; }
AA
KeyMapperextends Record<string, keyof S | keyof G | (store: Store<Id, S, G, A>) => any>

Параметры

НазваниеТип
useStoreStoreDefinition<Id, S, G, A>
keyMapperKeyMapper

Возвращает

_MapStateObjectReturn<Id, S, G, A, KeyMapper>

Устарело

заместо этого используйте mapState().

mapGetters<Id, S, G, A, Keys>(useStore, keys): _MapStateReturn<S, G, Keys>

Псевдоним для mapState(). Заместо этого вы должны использовать mapState().

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree
Gextends _GettersTree<S> | { [key: string]: ComputedRef; }
AA
Keysextends string | number | symbol

Параметры

НазваниеТип
useStoreStoreDefinition<Id, S, G, A>
keysreadonly Keys[]

Возвращает

_MapStateReturn<S, G, Keys>

Устарело

заместо этого используйте mapState().


mapState

mapState<Id, S, G, A, KeyMapper>(useStore, keyMapper): _MapStateObjectReturn<Id, S, G, A, KeyMapper>

Позволяет использовать состояние и геттеры из одного хранилища без использования composition API (setup()) путем создания объекта, который можно добавить в поле computed компонента. Значения объекта представляют собой свойства состояния или геттеры, а ключи - имена вычисляемых свойств в компоненте. По желанию, вы также можете передать собственную функцию, которая будет принимать хранилище в качестве первого аргумента. Обратите внимание, что хотя у нее есть доступ к экземпляру компонента через this, она не будет типизирована.

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree
Gextends _GettersTree<S> | { [key: string]: ComputedRef; }
AA
KeyMapperextends Record<string, keyof S | keyof G | (store: Store<Id, S, G, A>) => any>

Параметры

НазваниеТипОписание
useStoreStoreDefinition<Id, S, G, A>хранилище, из которого нужно добавить свойства состояния или геттеры
keyMapperKeyMapperобъект со свойствами состояния или геттерами

Возвращает

_MapStateObjectReturn<Id, S, G, A, KeyMapper>

Пример

js
export default {
  computed: {
    // другие вычисляемые свойства
    // useCounterStore имеет свойство состояния `count` и геттер `double`
    ...mapState(useCounterStore, {
      n: 'count',
      triple: store => store.n * 3,
      // обратите внимание, что мы не можем использовать стрелочную функцию, если хотим использовать `this`
      custom(store) {
        return this.someComponentValue + store.n
      },
      doubleN: 'double'
    })
  },

  created() {
    this.n // 2
    this.doubleN // 4
  }
}

mapState<Id, S, G, A, Keys>(useStore, keys): _MapStateReturn<S, G, Keys>

Позволяет использовать состояние и геттеры из одного хранилища без использования composition API (setup()) путем создания объекта, который можно добавить в поле computed компонента.

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree
Gextends _GettersTree<S> | { [key: string]: ComputedRef; }
AA
Keysextends string | number | symbol

Параметры

НазваниеТипОписание
useStoreStoreDefinition<Id, S, G, A>хранилище, из которого нужно добавить свойства состояния или геттеры
keysreadonly Keys[]массив с названиями свойств состояния или геттеров

Возвращает

_MapStateReturn<S, G, Keys>

Пример

js
export default {
  computed: {
    // другие вычисляемые свойства
    ...mapState(useCounterStore, ['count', 'double'])
  },

  created() {
    this.count // 2
    this.double // 4
  }
}

mapStores

mapStores<Stores>(...stores): _Spread<Stores>

Позволяет использовать хранилища без использования composition API (setup()) путем создания объекта, который можно добавить в поле computed компонента. Он принимает список определений хранилищ.

Параметры типа

НазваниеТип
Storesextends any[]

Параметры

НазваниеТипОписание
...stores[...Stores[]]список хранилищ для добавления

Возвращает

_Spread<Stores>

Пример

js
export default {
  computed: {
    // другие вычисляемые свойства
    ...mapStores(useUserStore, useCartStore)
  },

  created() {
    this.userStore // хранилище с id "user"
    this.cartStore // хранилище с id "cart"
  }
}

mapWritableState

mapWritableState<Id, S, G, A, KeyMapper>(useStore, keyMapper): _MapWritableStateObjectReturn<S, KeyMapper>

Аналогичен mapState(), но создает вычисляемые свойства с возможностью записи для того, чтобы можно было изменять состояние. В отличие от mapState(), можно добавлять только свойства из state.

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree
Gextends _GettersTree<S>
AA
KeyMapperextends Record<string, keyof S>

Параметры

НазваниеТипОписание
useStoreStoreDefinition<Id, S, G, A>хранилище, из которого нужно добавить свойства состояния
keyMapperKeyMapperобъект со свойствами состояния

Возвращает

_MapWritableStateObjectReturn<S, KeyMapper>

mapWritableState<Id, S, G, A, Keys>(useStore, keys): { [K in Keys]: Object }

Аналогичен mapState(), но создает вычисляемые свойства с возможностью записи для того, чтобы можно было изменять состояние. В отличие от mapState(), можно добавлять только свойства из state.

Параметры типа

НазваниеТип
Idextends string
Sextends StateTree
Gextends _GettersTree<S>
AA
Keysextends string | number | symbol

Параметры

НазваниеТипОписание
useStoreStoreDefinition<Id, S, G, A>хранилище, из которого нужно добавить свойства состояния
keysreadonly Keys[]массив свойств состояния

Возвращает

{ [K in Keys]: Object }


setActivePinia

setActivePinia(pinia): Pinia

Устанавливает или отменяет установку активной pinia. Используется при SSR и внутри самой библиотеки при вызове действий и геттеров

Параметры

НазваниеТипОписание
piniaPiniaЭкземпляр Pinia

Возвращает

Pinia

setActivePinia(pinia): undefined

Устанавливает или отменяет установку активной pinia. Используется при SSR и внутри самой библиотеки при вызове действий и геттеров

Параметры

НазваниеТипОписание
piniaundefinedЭкземпляр Pinia

Возвращает

undefined

setActivePinia(pinia): undefined | Pinia

Устанавливает или отменяет установку активной pinia. Используется при SSR и внутри самой библиотеки при вызове действий и геттеров

Параметры

НазваниеТипОписание
piniaundefined | PiniaЭкземпляр Pinia

Возвращает

undefined | Pinia


setMapStoreSuffix

setMapStoreSuffix(suffix): void

Этот параметр изменяет суффикс, добавляемый с помощью mapStores(). Может быть пустой строкой. По умолчанию устанавливается значение "Store". Убедитесь, что вы расширяете интерфейс MapStoresCustomization, если используете TypeScript.

Параметры

НазваниеТипОписание
suffixstringновый суффикс

Возвращает

void


skipHydrate

skipHydrate<T>(obj): T

Этот параметр указывает Pinia пропустить процесс гидратации заданного объекта. Это полезно только в setup-хранилищах при возврате объекта состояния, но которое на самом деле не является состоянием. Например, оно возвращаеит экземпляр маршрутизатора в setup-хранилище.

Параметры типа

НазваниеТип
Tany

Параметры

НазваниеТипОписание
objTцелевой объект

Возвращает

T

obj


storeToRefs

storeToRefs<SS>(store): StoreToRefs<SS>

Создает объект ref-ссылок со всем состоянием, геттерами и добавляемыми плагином свойствами состояния хранилища. Аналогично toRefs(), но специально разработанный специально для хранилищ Pinia, поэтому методы и нереактивные свойства полностью игнорируются.

Параметры типа

НазваниеТип
SSextends StoreGeneric

Параметры

НазваниеТипОписание
storeSSхранилище для извлечения ref-ссылок

Возвращает

StoreToRefs<SS>

Released under the MIT License.