Size: a a a

2018 October 08

Р

Роман in БЭМ
Ильдар
Пример приведите пожалуйста того что можно сделать с этими данными от bemtree, кейс если можно
Подразумевается, что bemtree (и всё, что в нём описывается), не будет тянуться на клиент, т. е. будет работать на стороне node.js. Это позволяет спокойно подгружать туда любые npm-пакеты, для упрощения манипуляций с данными, не боясь, что эта куча вспомогательных библиотек «приедет» на клиент. Таким образом главная задача bemtree — сделать все преобразования над данными, чтобы получить в сухом остатке только то, что нужно на выходе (bemjson с нужной структурой). А bemhtml вполне можно использовать на стороне клиента (особенно, если это SPA и нужна клиентская шаблонизация).

Если мы в deps'ах случайно утянем на клиент кусок «жирного» bemhtml, который содержит другие bemhtml-шаблоны и т. д., на клиента может быть куча всякого лишнего.
источник

И

Ильдар in БЭМ
Роман
Подразумевается, что bemtree (и всё, что в нём описывается), не будет тянуться на клиент, т. е. будет работать на стороне node.js. Это позволяет спокойно подгружать туда любые npm-пакеты, для упрощения манипуляций с данными, не боясь, что эта куча вспомогательных библиотек «приедет» на клиент. Таким образом главная задача bemtree — сделать все преобразования над данными, чтобы получить в сухом остатке только то, что нужно на выходе (bemjson с нужной структурой). А bemhtml вполне можно использовать на стороне клиента (особенно, если это SPA и нужна клиентская шаблонизация).

Если мы в deps'ах случайно утянем на клиент кусок «жирного» bemhtml, который содержит другие bemhtml-шаблоны и т. д., на клиента может быть куча всякого лишнего.
благодарю!
источник

SB

Sergey Belozyorcev in БЭМ
Роман
Подразумевается, что bemtree (и всё, что в нём описывается), не будет тянуться на клиент, т. е. будет работать на стороне node.js. Это позволяет спокойно подгружать туда любые npm-пакеты, для упрощения манипуляций с данными, не боясь, что эта куча вспомогательных библиотек «приедет» на клиент. Таким образом главная задача bemtree — сделать все преобразования над данными, чтобы получить в сухом остатке только то, что нужно на выходе (bemjson с нужной структурой). А bemhtml вполне можно использовать на стороне клиента (особенно, если это SPA и нужна клиентская шаблонизация).

Если мы в deps'ах случайно утянем на клиент кусок «жирного» bemhtml, который содержит другие bemhtml-шаблоны и т. д., на клиента может быть куча всякого лишнего.
У нас bemtree на клиенте )
источник

Р

Роман in БЭМ
Sergey Belozyorcev
У нас bemtree на клиенте )
А вот тут, я думаю, есть весомое оправдание.
источник

SB

Sergey Belozyorcev in БЭМ
Роман
А вот тут, я думаю, есть весомое оправдание.
У нас простое правило. bemtree структура. bemhtml аттрибуты/тэги
источник

Р

Роман in БЭМ
Sergey Belozyorcev
У нас простое правило. bemtree структура. bemhtml аттрибуты/тэги
Это SPA?
источник

SB

Sergey Belozyorcev in БЭМ
Sergey Belozyorcev
У нас простое правило. bemtree структура. bemhtml аттрибуты/тэги
Иногда закрадывается мысь без bemtree делать, чтобы 2 раза не гонять шаблоны. Но много всего нужно переписывать.
источник

SB

Sergey Belozyorcev in БЭМ
Роман
Это SPA?
Нет.
источник

SB

Sergey Belozyorcev in БЭМ
Но динамические блоки, пагинации присутствуют.
источник

SB

Sergey Belozyorcev in БЭМ
У нас 3 шаблонизатора. BEMTREE и BEMHTML/BEMVDOM (экспериментальный).
источник

Р

Роман in БЭМ
Sergey Belozyorcev
Но динамические блоки, пагинации присутствуют.
Ну вот кажется, что если это AJAX-пагинация и на клиент приходит JSON с данными новой страницы, то вполне можно этот JSON превратить в BEMJSON ещё на сервере, чтобы на клиенте осталось только применить BEMHTML-шаблоны, в которых в данном случае вполне можно добавить чуть-чуть логики для дополнительной обработки данных, если это сыкономит время на серверный рендер или объём пересылаемых данных.
источник

Р

Роман in БЭМ
Sergey Belozyorcev
У нас 3 шаблонизатора. BEMTREE и BEMHTML/BEMVDOM (экспериментальный).
Ого! VirtualDOM! Звучит интересно. Рабочая концепция?
источник

SB

Sergey Belozyorcev in БЭМ
Роман
Ого! VirtualDOM! Звучит интересно. Рабочая концепция?
Ну пробуем внедрять. В очень зачаточном состоянии. Это второй подход уже. Вроде работает )
источник

Р

Роман in БЭМ
Строите из HTML, который прилетает на клиент? Парсите вложенность, классы, атрибуты  и на базе них уже получаете виртуальный DOM?
источник

SB

Sergey Belozyorcev in БЭМ
Роман
Строите из HTML, который прилетает на клиент? Парсите вложенность, классы, атрибуты  и на базе них уже получаете виртуальный DOM?
Да. А при последующих рендерах на клиенте из BEMVDOM получаем уже новое дерево (не html) и патчим текущее.
источник

SB

Sergey Belozyorcev in БЭМ
Далеко ещё до React и Vue... Но наши задачи пока решает.
источник

SB

Sergey Belozyorcev in БЭМ
Также внедрили у себя валидатор данных. Таким образом получили "Самодокументируемые" шаблоны.
источник

И

Ильдар in БЭМ
Sergey Belozyorcev
Далеко ещё до React и Vue... Но наши задачи пока решает.
Звучит Круто, спасибо вам
источник

SB

Sergey Belozyorcev in БЭМ
Sergey Belozyorcev
Также внедрили у себя валидатор данных. Таким образом получили "Самодокументируемые" шаблоны.
Выглядит примерно так
block('my-ideas')({
   propTypes : {
       ideas : ['@idea'],
       showMaxCount : 'number',
       title : 'string',

       // Фильтрация идей
       craftId : 'number',
       techId : 'number',
   },

   defProps : {
       ideas : [],
       showMaxCount : 5,
       craftId : 0,
       techId : 0,
       title : 'Идеи использования'
   },

   content : 'bla-bla-bla'
})


При разработке (на debug уровне) происходит runtime валидация свойств блока.
источник

И

Ильдар in БЭМ
Sergey Belozyorcev
Выглядит примерно так
block('my-ideas')({
   propTypes : {
       ideas : ['@idea'],
       showMaxCount : 'number',
       title : 'string',

       // Фильтрация идей
       craftId : 'number',
       techId : 'number',
   },

   defProps : {
       ideas : [],
       showMaxCount : 5,
       craftId : 0,
       techId : 0,
       title : 'Идеи использования'
   },

   content : 'bla-bla-bla'
})


При разработке (на debug уровне) происходит runtime валидация свойств блока.
Это тоже просто огонь, внедрять планируете?
источник