Документация API / pinia / DefineStoreOptions
Интерфейс: DefineStoreOptions<Id, S, G, A>
pinia.DefineStoreOptions
Параметр options
функции defineStore()
для создания option-хранилищ. Может быть расширен для дополнения хранилищ с использованием API плагинов.
Смотрите
Параметры типа
Название | Тип |
---|---|
Id | extends string |
S | extends StateTree |
G | G |
A | A |
Иерархия
DefineStoreOptionsBase
<S
,Store
<Id
,S
,G
,A
>>↳
DefineStoreOptions
Свойства
actions
• Optional
actions: A
& ThisType
<A
& UnwrapRef
<S
> & _StoreWithState
<Id
, S
, G
, A
> & _StoreWithGetters
<G
> & PiniaCustomProperties
<string
, StateTree
, _GettersTree
<StateTree
>, _ActionsTree
>>
Опциональный объект действий.
getters
• Optional
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
Позволяет гидратировать хранилище во время SSR, когда в определении хранилища используются сложное состояние (например, только ref-ссылки на стороне клиента) и копирования значения из pinia.state
будет недостаточно.
Параметры
Название | Тип | Описание |
---|---|---|
storeState | UnwrapRef <S > | текущее состояние хранилища |
initialState | UnwrapRef <S > | initialState |
Возвращает
void
Пример
Если в вашем state
вы используете любые customRef
, computed
или ref
, значения которых различаются на сервере и клиенте, вам нужно будет вручную их гидратировать (восстановить). Например, ref-ссылка, которая хранится в локальном хранилище:
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)
}
})