Pull to refresh

Comments 10

Все эти примеры слишком простые и плоские. Меня вот интересует что делать с вложенными данными. Разделение на модули приводит к странному, ибо не возможно из одного модуля мутировать стейт другого модуля. Плоская структура же ведет к лапшевидному коду.

ибо не возможно из одного модуля мутировать стейт другого модуля

Это точно так? State можно получить из другого модуля:
someAction ({commit, state, rootState}) {
console.log(rootState.moduleName.stateField)
}

Я думал, что и диспатчить можно тогда…

Стейт модуля получить можно, но писать в стейт напрямую это плохо. Мутацию модуля дернуть никак.

Экшны! Приходится плодить экшны на самом деле являющиеся всего лишь обертками миграций

Да, вы правы, я не обратил внимания, что вы говорите именно о мутациях.
все что тут написано — это совершенно ненужное усложнение искусственно созданных объектов, которых не существует в интерфейсе
если вы создадите только один объект — компонент интерфейса с разными типами input, checkbox, select, fieldset итд, вы сможете связать эти компоненты в единую структуру с единым корнем в обычном json
в этом случае вам не нужны искусственно навязываемые состояния искусственных объектов, вы всегда можете прочесть текущее значение любого объекта интерфейса и привязать к нему логику: по факту в интерфейсе есть только два действия — показать/скрыть объект, изменить значение объекта
таким образом можно легко управлять огромными приложениями, с клонируемыми частями, а объекты интерфейса остаются объектами интерфейса в любом приложении, разница состоит только в html шаблонах, которые легко заменить
в итоге вы работаете только с компонентами интерфейса на обычном javascript & json и вообще не тратите свое время на html, и все это легко переносится куда угодно с минимальными модификациями
время разработки любого сложного приложения в таком варианте сводится к минимуму
UFO just landed and posted this here

К сожалению в статье ни слова про mapState, mapActions и mapGetters, в то время как в некоторых случаях это позволяет сократить количество кода на порядок.

Sign up to leave a comment.