Skip to content

Документація 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 для отримання властивостей, доданих за допомогою плагінів. Видалено у виробництві. Може використовуватися користувачем для додавання ключів властивостей сховища, які повинні відображатися у 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

Налаштовує функцію зворотного виклику, яка буде викликатися щоразу, коли дія буде викликана. Функція зворотного виклику отримує об'єкт з усією актуальною інформацією виклаканої дії:

  • store: сховище, для якого вона викликається
  • name: назва дії
  • args: параметри, що передаються до дії

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

Вона також повертає функцію для видалення зворотного виклику. Зверніть увагу, що при виклику store.$onAction() всередині компонента, він буде автоматично очищений, коли компонент буде демонтовано, якщо тільки detached не встановлено у true.

Повертає

void

функція, що видаляє спостерігача

Example

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

$patch

$patch(partialState): void

Застосовує патч стану до поточного стану. Дозволяє передавати вкладені значення

Параметри

Ім'яТипОпис
partialState_DeepPartial<UnwrapRef<S>>патч для застосування до стану

Повертає

void

$patch<F>(stateMutator): void

Об'єднує кілька змін в одну функцію. Це корисно, коли ви змінюєте такі структури даних, як Sets або масиви, тобто застосування патчу не є практичним, наприклад, додавання до масиву. Функція, що передається до $patch() повинна бути синхронною.

Тип параметрів

Ім'яТип
Fextends (state: UnwrapRef<S>) => any

Параметри

Ім'яТипОпис
stateMutatorReturnType<F> extends Promise<any> ? never : Fфункція, яка змінює стан, не може бути асинхронною

Повертає

void


$reset

$reset(): void

Обнуляє сховище до початкового стану, створюючи новий об'єкт стану. TODO: зробити це лише для опцій

Повертає

void


$subscribe

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

Встановлює зворотний виклик, який буде викликано щоразу, коли стан змінюється. Також повертає функцію для видалення зворотного виклику. Зверніть увагу що при виклику store.$subscribe() всередині компонента, він буде автоматично очищений, коли компонент буде демонтовано, якщо тільки detached не встановлено в true.

Параметри

Ім'яТипОпис
callbackSubscriptionCallback<S>функція зворотного виклику, що передається до спостерігача
options?{ detached?: boolean } & WatchOptions<boolean>опції watch та detached для видалення підписки з контексту (зазвичай компонента), в якому її було викликано. Зверніть увагу, що опція flush не впливає на виклики store.$patch().

Повертає

fn

функція, що видаляє спостерігача

▸ (): void

Встановлює зворотний виклик, який буде викликано щоразу, коли стан змінюється. Також повертає функцію для видалення зворотного виклику. Зверніть увагу що при виклику store.$subscribe() всередині компонента, він буде автоматично очищений, коли компонент буде демонтовано, якщо тільки detached не встановлено в true.

Повертає

void

функція, що видаляє спостерігача

Released under the MIT License.