Skip to content

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

Інтерфейс: DefineStoreOptions<Id, S, G, A>

pinia.DefineStoreOptions

Опційний параметр defineStore() для опцій сховищ. Може бути розширений, щоб доповнювати сховища за допомогою плагіна API.

Дивись

DefineStoreOptionsBase.

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

Ім'яТип
Idextends string
Sextends StateTree
GG
AA

Ієрархія

Властивості

actions

Опційні дії: A & ThisType<A & UnwrapRef<S> & _StoreWithState<Id, S, G, A> & _StoreWithGetters<G> & PiniaCustomProperties<string, StateTree, _GettersTree<StateTree>, _ActionsTree>>

Опційний об'єкт дій.


getters

Опційні геттери: G & ThisType<UnwrapRef<S> & _StoreWithGetters<G> & PiniaCustomProperties<string, StateTree, _GettersTree<StateTree>, _ActionsTree>> & _GettersTree<S>

Опційний об'єкт геттерів.


id

id: Id

Унікальний ключ-рядок для ідентифікації сховища у всьому додатку.


state

Опційний state: () => S

Оголошення типів

▸ (): S

Функція для створення нового стану. Повинна бути стрілочною функцією, щоб забезпечити правильність введення.

Повертає

S

Методи

hydrate

Опційний hydrate(storeState, initialState): void

Дозволяє гідратувати сховище під час рендерингу на стороні серверу, коли комплексний стан (наприклад референції лише на стороні клієнта) використовується у визначенні сховища і копіювання значення з pinia.state є недостатнім.

Параметри

Ім'яТипОпис
storeStateUnwrapRef<S>поточний стан у сховищі
initialStateUnwrapRef<S>початковий стан

Повертає

void

Приклад

Якщо у вашому стані ви використовуєте будь-яку користувацьку референцію, будь-яке обчислюване значення або будь-яку референцію, які мають різне значення на сервері та на клієнті, то вам потрібно вручну гідратувати їх, наприклад користувацьку референцію, яка зберігається у локальному сховищі:

ts
const useStore = defineStore('main', {
  state: () => ({
    n: useLocalStorage('key', 0)
  }),
  hydrate(storeState, initialState) {
    // @ts-expect-error: https://github.com/microsoft/TypeScript/issues/43826
    storeState.n = useLocalStorage('key', 0)
  }
})
const useStore = defineStore('main', {
  state: () => ({
    n: useLocalStorage('key', 0)
  }),
  hydrate(storeState, initialState) {
    // @ts-expect-error: https://github.com/microsoft/TypeScript/issues/43826
    storeState.n = useLocalStorage('key', 0)
  }
})

Released under the MIT License.