Добрый день! Начинаю осваивать БЭМ методологию и пытаюсь понять архитектуру приложения. Мне сейчас непонятны некоторые вещи:
- Если, в зависимости от пришедших данных, мне надо вывести два разных блока, то где мы эту логику определяем? Какая есть практика этих фронтовых контроллеров, или они не нужны вовсе?
- Если внутри одного блока, у меня могут быть различные другие блоки, зависящие от логики, где мне эту логику определять?
- Чем бандлы отличаются от БЭМ блоков в их широком представлении?
Надеюсь, что вы мне поможете разобраться в этих хитросплетениях архитектуры.
По первым двум вопросам посмотрите вебинар про архитектуру и шаблонизацию.
На счет третьего вопроса: блоки обычно реализованы в нескольких технологиях и лежат по отдельности в большом количестве файлов. Чтобы эти файлы стали пригодны для использования (т.е. чтобы их можно было выложить на сервер и запустить приложение), выполняют сборку блоков, в соответствии с указанными зависимостями и уровнями переопределения. Бандлы - это результаты сборки.
Большое спасибо за вебинар. Посмотрел. Возник еще вопрос: получается, что роутинг и работу с запросами осуществляет скрипт на фронте (ноде)? Возможно ли это оставить беку? Например, запрос уходит на сервер, который обращается к ноде и определенной вьюхе? Это будет приходить в тот же экспресс, но с другой стороны? Как в таком случае, организовать догрузку данных, например, если одной вложенной вьюшке требуются дополнительные данные с бека?
Да, возможно.
В вебинаре показывают обработку запроса:
Никто вам не мешает сделать по-другому:
В этом случае, можно использовать любой бэкенд и любой роутинг. Главное, уметь обращаться с бэкенда к ноде. Например, можно запустить отдельный шаблонизирующий сервис на node и обращаться к нему по http или запустить node внутри процесса бэкенда.
Если у вас бэкенд на .NET, то могу рассказать подробнее, как запустить ноду внутри процесса .NET.
Если нода и бэкенд работают в одном процессе, то можно из ноды обращаться к бэкенду. Если нода - отдельное приложение, то, в общем случае, никак.
Нет, наш бек на PHP (yii2). А пересылка туда-сюда данных + собраный html не накладно по ресурсам?
У нас на некоторых проектах используется схема из вебинара. Если что-то тормозит, то обычно не в пересылке проблема)