OlegOleg1980
@OlegOleg1980
программист

Как разделить данные во Vuex?

Собственно, вопрос такой - нужно хранить состояния в vuex, но не хотелось бы их все в кучу мешать. Сразу оговорюсь - модули не будем использовать (пока). Пробую реализовать это через объекты, типа:
someState:{
  state1:value,
  state2:value,
  ...
  stateN:value
}

и потом в процессе работы менять эти состояния state через someState.state1, но почему то они не хотят меняться поодиночке, а менять можно только целиком состояние someState.
А вот как сделать, чтобы не перезаписывать полностью весь объект someState, а только state менять?
  • Вопрос задан
  • 912 просмотров
Решения вопроса 1
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Ответ такой (см. комментарии выше):

Ссылка на пример кода: https://codepen.io/kerf/pen/Ngxmem

Вот это присвоение сработает только один раз при инициализации компонента:

data() { 
  return {
   selected: this.value
  }


Чтобы обновлять selected при изменении value можно воспользоваться одним из следующих способов:

1. слежение за изменением:
watch: {
    value: function () {
      this.selected = this.value
    }
  }

2. обновляем в хуке:
beforeUpdate() {
    this.selected = this.value
  }

3. в пропсы передать объект, он передается по ссылке, поэтому если в нем снаружы изменить значения, они автоматически должны измениться внутри компонента (не проверял, но по логике должно работать).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы