Документація 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)
}
})