Документація API / pinia / DefineStoreOptions
Інтерфейс: DefineStoreOptions<Id, S, G, A>
pinia.DefineStoreOptions
Опційний параметр defineStore()
для опцій сховищ. Може бути розширений, щоб доповнювати сховища за допомогою плагіна API.
Дивись
Типи параметрів
Ім'я | Тип |
---|---|
Id | extends string |
S | extends StateTree |
G | G |
A | A |
Ієрархія
DefineStoreOptionsBase
<S
,Store
<Id
,S
,G
,A
>>↳
DefineStoreOptions
Властивості
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
є недостатнім.
Параметри
Ім'я | Тип | Опис |
---|---|---|
storeState | UnwrapRef <S > | поточний стан у сховищі |
initialState | UnwrapRef <S > | початковий стан |
Повертає
void
Приклад
Якщо у вашому стані
ви використовуєте будь-яку користувацьку референцію
, будь-яке обчислюване значення
або будь-яку референцію
, які мають різне значення на сервері та на клієнті, то вам потрібно вручну гідратувати їх, наприклад користувацьку референцію, яка зберігається у локальному сховищі:
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)
}
})