Документация API / pinia / DefineStoreOptionsInPlugin
Интерфейс: DefineStoreOptionsInPlugin<Id, S, G, A>
pinia.DefineStoreOptionsInPlugin
Доступные options при создании плагина pinia.
Параметры типа
| Название | Тип |
|---|---|
Id | extends string |
S | extends StateTree |
G | G |
A | A |
Иерархия
Omit<DefineStoreOptions<Id,S,G,A>,"id"|"actions">↳
DefineStoreOptionsInPlugin
Свойства
actions
• actions: A
Извлеченный объект действий. Добавляется с помощью useStore() при создании хранилища с setup API, в противном случае используется тот, который передается в defineStore(). По умолчанию является пустым объектом, если действия не определены.
getters
• Опционально getters: G & ThisType<UnwrapRef<S> & _StoreWithGetters<G> & PiniaCustomProperties<string, StateTree, _GettersTree<StateTree>, _ActionsTree>> & _GettersTree<S>
Опциональный объект геттеров.
Наследуется от
Omit.getters
state
• Опционально state: () => S
Функция для создания нового состояния. Должна быть стрелочной функцией для обеспечения правильной типизации!
Объявление типа
▸ (): S
Возвращает
S
Наследуется от
Omit.state
Методы
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)
}
})Наследуется от
Omit.hydrate