@l4m3r

Где хранить бизнес логику?

Начал осваивать vue сразу с боевого примера, а не с hello world: решил написать симулятор клеточного автомата (игра "Жизнь", например). Не понимаю один архитектурный момент.
Допустим, экран будет разделён на 2 части: верний тулбар настроек и остальная область - собственно, канвас самой игры (webgl three-js).
В итоге, имеем 3 компонента:
<App>
   <Settings>
   <Grid>


1) Получается, весь код и вся логика игры должны находиться в файле Grid.vue? Которая будет обращаться к Settings за параметрами и собственно рендерить. Какой-то "божественный объект" получается... Да и в концепцию vue как-то не входит: ведь тут webgl, а не dom.

2) Подумал ещё вынести логику отдельно от Vue. Создать классы Cell.js, Game.js и прочее. Ну тогда получается Grid не сильно нужен.
  • Вопрос задан
  • 441 просмотр
Решения вопроса 1
bootd
@bootd
Гугли и ты откроешь врата знаний!
Создать классы Cell.js, Game.js
именно так. Vue вам не запрещает писать свои классы.
Создайте папку, в ней пишите свои классы, после импортируйте их в шаблоны и работайте.

Получается, весь код и вся логика игры должны находиться в файле Grid.vue? Которая будет обращаться к Settings за параметрами и собственно рендерить
- если вам нужно сделать так, что бы компоненты общались между собой, то лучше всего используйте vuex, в котором из компонента Settings меняйте значения, а Grid будет смотреть эти значения из vuex и что либо делать. Тем самым вы вынесите настройки проекта и сможете их цеплять из любого места в приложении, иначе будет у вас лапша
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@aylo
Прочитайте про vuex. И через модули все можно сделать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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