State
Это реактивный объект, который определяется с помощью функции фабрики, которая всегда возвращает объект инициализации состояния:
const state = () => ({
name: 'Alex',
age: 35
})
В момент инициализации state
сначала будет обернут в proxy
объект (зачем это сделано, вы узнаете позже) и только затем полученный proxy
объект будет обернут в реактивный прокси, с помощью использования Vue API ref
и toRefs
. Затем уже полученный реактивный объект будет дополнительно обернут в reactive
для распоковывания значения ref
объекта, как это указано в документации Vue по reactive
API, с сохранением реактивности. Что в свою очередь повзолит нам получать значения state
без использования value
.
Теперь, после инициализции state
мы имеем состояние которое можем мутировать:
import { defineStore } from 'nervue'
const state = () => ({
name: 'Alex',
age: 35
})
const actions = {
setUserName(name){
// доступ к state мы получаем прямо из контекста this
this.name = name
}
}
export const useUserStore = defineStore({
id: 'USER',
state,
actions
})