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

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

Интерфейс: _StoreWithState<Id, S, G, A> ​

pinia._StoreWithState

Базовое хранилище с состоянием и функциями. Не должно использоваться напрямую.

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

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

Иерархия ​

Свойства ​

$id ​

• $id: Id

Уникальный идентификатор хранилища

Наследуется от ​

StoreProperties.$id


$state ​

• $state: UnwrapRef<S> & PiniaCustomStateProperties<S>

Состояние хранилища. Установка этого параметра приведет к внутреннему вызову $patch() для обновления состояния.


_customProperties ​

• _customProperties: Set<string>

Используется плагином devtools для получения свойств, добавленных с помощью плагинов. Удаляется при production сборке. Может использоваться пользователем для добавления ключей свойств хранилища, которые должны отображаться в devtools.

Наследуется от ​

StoreProperties._customProperties

Методы ​

$dispose ​

▸ $dispose(): void

Этот метод останавливает связанную область эффекта хранилища и удаляет его из реестра хранилищ. Плагины могут переопределить этот метод, чтобы выполнить очистку добавленных эффектов. Например, плагин devtools прекращает отображение удаленных хранилищ в devtools. Обратите внимание, что это не удаляет состояние хранилища, и вам придется сделать это вручную с помощью delete pinia.state.value[store.$id], если вы хотите очистить состояние. Если вы этого не сделаете и хранилище будет использовано снова, оно будет использовать предыдущее состояние.

Возвращает ​

void


$onAction ​

▸ $onAction(callback, detached?): () => void

Устанавливает коллбек, который будет вызываться каждый раз, когда действие должно быть вызвано. Коллбек получает объект, содержащий всю необходимую информацию о вызываемом действии:

  • store: хранилище, для которого она вызывается
  • name: Название действия
  • args: Параметры, передаваемые действию

В дополнение к ним он получает две функции, позволяющие задать коллбек по завершению действия или при его неудаче.

Также возвращается функция для удаления коллбека. Обратите внимание, что при вызове store.$onAction() внутри компонента, он автоматически очищается, когда компонент размонтируется, если только параметр detached не установлен в true.

Параметры ​

НазваниеТипОписание
callbackStoreOnActionListener<Id, S, G, A>коллбек, вызываемый перед каждым действием
detached?booleanнужно ли открепить подписку от контекста, из которого она вызывается

Возвращает ​

fn

функция, удаляющая наблюдателя

▸ (): void

Возвращает ​

void

Пример

js
store.$onAction(({ after, onError }) => {
 // Здесь вы можете обмениваться переменными между всеми хуками, а также
 // устанавливать наблюдателей и очищать их
 after((resolvedValue) => {
   // может использоваться для очистки сайд эффектов
.  // `resolvedValue` - это значение, возвращаемое действием, если действие это
.  // Promise, то будет разрешено значение, а не Promise
 })
 onError((error) => {
   // может использоваться для передачи ошибок
 })
})

$patch ​

▸ $patch(partialState): void

Применяет изменение (patch) к текущему состоянию. Позволяет передавать вложенные значения

Параметры ​

НазваниеТипОписание
partialState_DeepPartial<UnwrapRef<S>>изменения, которые будут применены к состоянию

Возвращает ​

void

▸ $patch<F>(stateMutator): void

Группировка несколько изменений в одну функцию. Полезно, когда происходит изменение объектов, таких как Sets или массивы, и применение patch c объектом не является практичным, например, при добавлении элементов в массив. Функция, передаваемая в $patch(), должна быть синхронной.

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

НазваниеТип
Fextends (state: UnwrapRef<S>) => any

Параметры ​

НазваниеТипОписание
stateMutatorReturnType<F> extends Promise<any> ? never : Fфункция, которая изменяет state, не может быть асинхронной

Возвращает ​

void


$reset ​

▸ $reset(): void

Сбрасывает хранилище в исходное состояние, создавая новый объект состояния.

Возвращает ​

void


$subscribe ​

▸ $subscribe(callback, options?): () => void

Настройка коллбека для вызова каждый раз, когда изменяется состояние. Функция также возвращает другую функцию для удаления коллбека. Обратите внимание, что при вызове store.$subscribe() внутри компонента, он будет автоматически очищен, когда компонент будет размонтирован, если не установлено значение detached в true.

Параметры ​

НазваниеТипОписание
callbackSubscriptionCallback<S>коллбек, передаваемый наблюдателю
options?{ detached?: boolean } & WatchOptions<boolean>Опции watch + detached для отсоединения подписки от контекста (обычно компонента), из которого она вызывается. Обратите внимание, что опция flush не влияет на вызовы store.$patch().

Возвращает ​

fn

функция, удаляющая наблюдателя

▸ (): void

Возвращает ​

void

Released under the MIT License.