19. Шаблон BEMHTML. Моды
14
default — набор и порядок прохождения остальных мод
tag — генерация HTML тэга
20. Шаблон BEMHTML. Моды
14
default — набор и порядок прохождения остальных мод
tag — генерация HTML тэга
js — наличие js и параметры
21. Шаблон BEMHTML. Моды
14
default — набор и порядок прохождения остальных мод
tag — генерация HTML тэга
js — наличие js и параметры
bem — генерация классов БЭМ-сущности
22. Шаблон BEMHTML. Моды
14
default — набор и порядок прохождения остальных мод
tag — генерация HTML тэга
js — наличие js и параметры
bem — генерация классов БЭМ-сущности
cls — кастомные классы
23. Шаблон BEMHTML. Моды
14
default — набор и порядок прохождения остальных мод
tag — генерация HTML тэга
js — наличие js и параметры
bem — генерация классов БЭМ-сущности
cls — кастомные классы
mix — несколько БЭМ-блоков на одной DOM-ноде
24. Шаблон BEMHTML. Моды
14
default — набор и порядок прохождения остальных мод
tag — генерация HTML тэга
js — наличие js и параметры
bem — генерация классов БЭМ-сущности
cls — кастомные классы
mix — несколько БЭМ-блоков на одной DOM-ноде
jsAttrs — имя HTML-атрибута для параметров клиентского js
25. Шаблон BEMHTML. Моды
14
default — набор и порядок прохождения остальных мод
tag — генерация HTML тэга
js — наличие js и параметры
bem — генерация классов БЭМ-сущности
cls — кастомные классы
mix — несколько БЭМ-блоков на одной DOM-ноде
jsAttrs — имя HTML-атрибута для параметров клиентского js
attrs — позволяет задать имена и значения произвольных HTML-атрибутов
26. Шаблон BEMHTML. Моды
14
default — набор и порядок прохождения остальных мод
tag — генерация HTML тэга
js — наличие js и параметры
bem — генерация классов БЭМ-сущности
cls — кастомные классы
mix — несколько БЭМ-блоков на одной DOM-ноде
jsAttrs — имя HTML-атрибута для параметров клиентского js
attrs — позволяет задать имена и значения произвольных HTML-атрибутов
content — содержимое HTML-элемента
54. JavaScript, BEMTREE и BEMHTML
25
специализированные DSL, расширяющие JavaScript
можно использовать любые JavaScript конструкции
55. JavaScript, BEMTREE и BEMHTML
25
специализированные DSL, расширяющие JavaScript
можно использовать любые JavaScript конструкции
компилируются в оптимизированный JavaScript
56. JavaScript, BEMTREE и BEMHTML
25
специализированные DSL, расширяющие JavaScript
можно использовать любые JavaScript конструкции
компилируются в оптимизированный JavaScript
исполняются на клиенте и сервере
66. Шаблон BEMTREE. Моды
29
пустая мода — имеет смысл только в том случае, если необходимо изменить
принцип обхода входного дерева
67. Шаблон BEMTREE. Моды
29
пустая мода — имеет смысл только в том случае, если необходимо изменить
принцип обхода входного дерева
default — обработка стандартных мод
68. Шаблон BEMTREE. Моды
29
пустая мода — имеет смысл только в том случае, если необходимо изменить
принцип обхода входного дерева
default — обработка стандартных мод
content — содержимое БЭМ-узла
69. Шаблон BEMTREE. Моды
29
пустая мода — имеет смысл только в том случае, если необходимо изменить
принцип обхода входного дерева
default — обработка стандартных мод
content — содержимое БЭМ-узла
кастомная мода — пользовательские мода, для специфичной обработки БЭМ-дерева
72. Отличия BEMHTML и BEMTREE
31
BEMTREE BEMHTML
генерация БЭМ-дерева генерация HTML
моды default, content, пустая
все что в BEMTREE + генерация HTML
(tag, js, cls, bem и т.д.)
возвращает Vow-promise возвращает строку
различный набор методов-хелперов
104. 52
Декларация блока
BEMDOM.decl('form', {!
/* методы экземпляра блока */
}, {!
/* методы класса */
});
105. 53
Декларация блока
BEMDOM.decl('form', {!
/* методы экземпляра блока */
}, {!
/* методы класса */
});!
!
.form {!
display: flex;!
}
106. 54
BEMDOM.decl('form', {
myMethod: function() {
// экземпляр
this
// ссылка на класс
this.__self
// статический метод класса
this.__self.myStaticMethod()
// super-call
this.__base()
}
});
107. 55
BEMDOM.decl('form', { /* … */ }, {
myStaticMethod: function() {
// класс
this
// super-call
this.__base()
}
});
132. И много чего ещё!
72
Блоки без DOM-представления
133. И много чего ещё!
72
Блоки без DOM-представления
Отложенная инициализация
134. И много чего ещё!
72
Блоки без DOM-представления
Отложенная инициализация
Делегирование событий
135. И много чего ещё!
72
Блоки без DOM-представления
Отложенная инициализация
Делегирование событий
Инстансы элементов
136. Очень полезные ссылки!
!
ym — github.com/ymaps/modules
Генератор проектов — ru.bem.info/tools/bem/bem-stub
Пошаговое руководство по i-bem.js — ru.bem.info/tutorials/bem-js-tutorial
Если лень читать, то можно посмотреть видео — ru.bem.info/talks/bemup-moscow-2014
!
Ссылка на полную презентацию — clck.ru/9FST5
73