bem-site / bem-forum-content-ru

Content BEM forum for Russian speak users
MIT License
56 stars 6 forks source link

Доопределение XJST шаблонов в javascript файлах проекта #308

Open Guria opened 9 years ago

Guria commented 9 years ago

Я хочу предоставлять компоненты написанные на БЭМ для проектов, которые больше нигде БЭМ не используют. При этом я хочу предоставить им возможность до-/пере- определять шаблоны компонентов. В bh это реализуется приблизительно следующим образом:

modules.require(['bh'], function(bh){
  bh.match(/* определение шаблона */)
});

Как такого же эффекта можно достичь с шаблонами bemtree / bemhtml?

tadatuta commented 9 years ago

@Guria Прямо сейчас в рантайме переопределять XJST-шаблоны можно только в dev-режиме, т.к. для production предполагается этап компиляции.

Влад @vkz, вы не продвинулись в доопределении шаблонов в рантайме?

Guria commented 9 years ago

Кажется временно можно использовать связку BEMTREE + BH, тогда появится возможность доопределять хотя бы шаблоны представления.

Кстати, почему в вопросах типа "что использовать вместо bemtree для шаблонов bh?" никогда не встречался ответ "Можно использовать bemtree"?

tadatuta commented 9 years ago

@Guria Можно, конечно. Я был уверен, что это достаточно очевидно. Тут скорее возникает вопрос в том, что пользователю придется уметь и XJST и BH, все равно остается этап компиляции и, кмк, теряется смысл в том, чтобы не использовать BEMHTML. Хотя, конечно, довод про переопределение шаблонов в рантайме железный.

apsavin commented 9 years ago

@tadatuta @Guria а вы встречали случаи, кроме описанного выше, когда может пригодиться переопределение шаблонов в рантайме?

tadatuta commented 9 years ago

@apsavin в общем случае это может быть полезно, когда хочется чанками догружать в рантайм дополнительную функциональность (скажем, для жирного SPA) и не хочется гонять базовые шаблоны BEMHTML для каждого каждого такого бандла. Я ничего больше придумать не могу.

apsavin commented 9 years ago

@tadatuta вариант, хотя, кажется, на базовых шаблонах много не сэкономишь.

tadatuta commented 9 years ago

@apsavin если догружаемый бандл один — да. а если их пару десятков, то уже и повод задуматься.

Guria commented 9 years ago

+ за жирный SPA. Этот вопрос нам будет очень актуален.

apsavin commented 9 years ago

На самом деле, в случае жирного SPA - еще большой вопрос, как лучше для пользователя, подождать при открытии и потом пользоваться очень быстро (никто вроде не жалуется на gmail) или постоянно подгружать какие-то кусочки шаблонов и скриптов.

Guria commented 9 years ago

Ну шаблоны действительно не самая тяжёлая часть, а js можно и в динамике подгружать. Однако первоначальный кейс всё равно актуален.

apsavin commented 9 years ago

@Guria первоначальный - да, безусловно.

qfox commented 9 years ago

@apsavin лучше всего найти компромис: см. игры от близзард, они жирные, но не требуют 100% загрузки для запуска. Там есть такое понятие, как оптимальный объем, обязательный к наличию «под рукой», а вся лирика догружается «потом» или в процессе работы.

apsavin commented 9 years ago

@zxqfox это все в любом случае может меняться в зависимости от проекта.

vkz commented 9 years ago

Спам фильтр радостно сожрал оповещение. Сорри, что сразу не ответил. Работа над дозагрузкой ведется. Как будет, чем порадовать, дам знать.