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.