Как сделать начальную MVC модель для сайта на JS?

Ребята привет!
Прочитал уже несколько статей с примерами MVC для отдельного компонента, где одна модель, контроллер и представление. Но как это сделать для всей страницы, где есть хеддер, сайдбар, основная часть и ифутер. Я так понимаю у каждого блока будет свой набор MVC, но как их вместе связать? А если еще, например, в сайдбаре несколько отдельных компонентов, у каждого из которых свой набор MVC. Как это все связать воедино? Расскажите или на пальцах, или набросайте минимальный код. Буду очень благодарен!
  • Вопрос задан
  • 1298 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Themezv
Js developer (React.js)
MVC не особо популярен на фронте. Почитайте про flux, redux, mobx.
Ответ написан
alexiusp
@alexiusp
senior frontend developer
Я бы рекомендовал воспользоваться имеющимися фреймворками. Чистый MVC на фронтенде уже давно не используется. Но если хочется повозиться с основами, прокачать навыки, то попробуйте мыслить структурно. У вас есть иерархия страница -> хидер -> меню -> элемент меню и т.п. Отражение этой иерархии скорее всего нужно будет реализовать во всех аспектах: модели, контроллерах, вьюхах. Вы должны запустить контроллер страницы, который подготовит модели (запустит их контроллеры) и передаст их во вью страницы. вью страницы, в свою очередь, должен выстроить дерево вью подчинённых и отрендерить их. или вызвать render своих детей, которые в свою очередь вызовут render своих и т.п. как это делает react.
Ответ написан
Комментировать
bro-dev
@bro-dev
Дык в чем проблема то конкретно? просто создайте 3 файла m.js v.js c.js и пихайте туда код по смыслу.
Все $.on и addEventListener в контролер, все где нужно выводить данные в дом это вью, ну а если че-то сложное делаете с данными это модель. Сразу предупрежу что будет много функций которые вроде как нафига создавать если они юзаются 1 раз, но чисто для того чтобы были в отдельном файле.
А то что вы перечислили хедер футер сайдбар этож верстка просто ясен фиг она в 1 файле вся вместе.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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