Приветствую! Вопрос, возможно, глупый, но все же хотелось бы узнать мнение людей, которые не такие "зеленые" в этом деле как я. Маленькая предистория: вдохновившись записями мастер-класса BEMup'a в Москве я принялся за дело - сайт получает данные из БД, они обрабатываются в BEMTREE, полученный bemjson в BEMHTML, а оттуда на клиент. Роутингом всего этого занимается express. Все отлично и прекрасно, но есть одно "но". Дело в том, что на всех страницах (точнее сказать по всем адресам, которые знает мое приложение) есть одинаковый контент в виде менюшки, лого и т. д. Так вот хотелось бы всю вот эту, так сказать, "статику" один раз описать в файле *.bemjson и забыть. Очень уж лениво каждый раз после обработки БЕМ-деревом оборачивать полученный bemjson своими блоками, да и если это ajax-запрос, то при таком подходе результат выходит мягко говоря забавный. Думаю, многие сталкивались с подобным, потому буду рад Вашему совету
Еще не пробовали в
page.bemtree
илиroot.bemtree
эту менюшку описывать? В этом случае она всегда будет только там и нигде еще.@const-l Привет! Не уверен, что правильно понял вопрос, опишу в двух словах схему, по которой это все задумано, если окажется, что ответил не на то — буду раз уточняющим вопросам.
На стороне
express
окажется функция render вроде такой (сниппет из реального проекта, добавил комментов):Теперь, чтобы мочь рендерить только нужные блоки вместо целой страницы для AJAX-запросов, в шаблоне
root.bemtree
можно написать что-то типа:Пользоваться этим можно так:
@zxqfox, Вариант)) Я, видимо, зациклился на bemjson'e, так как он мне кажется более наглядным, что ли))
@tadatuta, да, вопрос именно в этом. Благодарю за наглядность
@tadatuta Еее! :+1: :)
А есть публичные демо проекты организованные аналогично? Чтобы подробнее покурить как это работает.
@Guria прямо сейчас нормально оформленных нет :(
у меня есть большое желание обобщить текущий опыт в виде реиспользуемого модуля/модулей и подробно описать подход к разработке с примерами, но когда до этого дойдут руки — не знаю.
@tadatuta Еще работаете над этим? :)
@Immuzov Традиционно зашли с дальнего края и переписали саму работу BEMHTML, сейчас переводим на новые рельсы и BEMTREE. Так что по теме вопроса мне все еще предложить нечего. Но зато ребята из сообщества выложили свои наработки: https://github.com/apsavin/bnsf https://github.com/voischev/express-bemtree-project-stub
@tadatuta Спасибо!