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

Последнее обновление: