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
})