Comments 10
Если хочется с самого начала получить легко масштабируемую структуру приложения, использующего Vuex, то у них в репозитории отличный пример:
github.com/vuejs/vuex/tree/dev/examples/shopping-cart
github.com/vuejs/vuex/tree/dev/examples/shopping-cart
0
Все эти примеры слишком простые и плоские. Меня вот интересует что делать с вложенными данными. Разделение на модули приводит к странному, ибо не возможно из одного модуля мутировать стейт другого модуля. Плоская структура же ведет к лапшевидному коду.
+1
ибо не возможно из одного модуля мутировать стейт другого модуля
Это точно так? State можно получить из другого модуля:
someAction ({commit, state, rootState}) {
console.log(rootState.moduleName.stateField)
}
Я думал, что и диспатчить можно тогда…
0
все что тут написано — это совершенно ненужное усложнение искусственно созданных объектов, которых не существует в интерфейсе
если вы создадите только один объект — компонент интерфейса с разными типами input, checkbox, select, fieldset итд, вы сможете связать эти компоненты в единую структуру с единым корнем в обычном json
в этом случае вам не нужны искусственно навязываемые состояния искусственных объектов, вы всегда можете прочесть текущее значение любого объекта интерфейса и привязать к нему логику: по факту в интерфейсе есть только два действия — показать/скрыть объект, изменить значение объекта
таким образом можно легко управлять огромными приложениями, с клонируемыми частями, а объекты интерфейса остаются объектами интерфейса в любом приложении, разница состоит только в html шаблонах, которые легко заменить
в итоге вы работаете только с компонентами интерфейса на обычном javascript & json и вообще не тратите свое время на html, и все это легко переносится куда угодно с минимальными модификациями
время разработки любого сложного приложения в таком варианте сводится к минимуму
если вы создадите только один объект — компонент интерфейса с разными типами input, checkbox, select, fieldset итд, вы сможете связать эти компоненты в единую структуру с единым корнем в обычном json
в этом случае вам не нужны искусственно навязываемые состояния искусственных объектов, вы всегда можете прочесть текущее значение любого объекта интерфейса и привязать к нему логику: по факту в интерфейсе есть только два действия — показать/скрыть объект, изменить значение объекта
таким образом можно легко управлять огромными приложениями, с клонируемыми частями, а объекты интерфейса остаются объектами интерфейса в любом приложении, разница состоит только в html шаблонах, которые легко заменить
в итоге вы работаете только с компонентами интерфейса на обычном javascript & json и вообще не тратите свое время на html, и все это легко переносится куда угодно с минимальными модификациями
время разработки любого сложного приложения в таком варианте сводится к минимуму
0
UFO just landed and posted this here
К сожалению в статье ни слова про mapState, mapActions и mapGetters, в то время как в некоторых случаях это позволяет сократить количество кода на порядок.
0
Sign up to leave a comment.
Миграция VueJS приложения на Vuex