@danilr

Как правильно задать начальное состояние компонента из Vuex?

Мне нужно брать данные из Vuex при инициализации компонентов, затем их внутри компонентов менять и затем если требуется обновить их во Vuex.
Простой первый вопрос - если мне нужна начальная структура переменной, правильно ли вот так задавать её во Vuex?
export default new Vuex.Store({
  state: {
    currentNote: {
      id: 1,
      title: '',
      list: [
        {
          isDone: false,
          text: "",
          id: 1
        }
      ]
    }
  },

Второй главный вопрос - если мне надо задать в компоненте начальные данные из Vuex, в моём случае, массив из currentNod, как это правильно сделать?
Я скостылил и применил методо slice(), чтобы он копию мне давал, а то если без slice, то меняя данные в компоненте, он менял их и в store.
export default {
  data() {
    const {currentNote, currentListId} = this.$store.state;

    return {
      title: currentNote.title,
      items: currentNote.list.slice(),
    };
  },
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
Kozack
@Kozack Куратор тега Vue.js
Thinking about a11y
Почему я копирую данные для компоненты, так это для того, чтобы на каждое изменение инпута в компоненте - не обрабатывать на стороне Vuex

Для таких случаев, существует debounce

Простейший способ рекунривно скопировать объект:
const copy = JSON.parse( JSON.stringify( source ) )


Ну, а сохранять — вызвать action и передать в него вашу копию.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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