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.