Добрый день! Стоит ли использовать БЭМ (Блок Элемент Модификатор (Яндекс)) и, что означает независимый блок в контексте БЭМ?
Ответ
БЭМ, это соглашение о наименованиях. Не MVC, и не исключает совместное использование с каким-нибудь MVC.
БЭМ помогает решить ряд определенных проблем:
Исключить зависимые имена классов. При разработке долгоиграющих проектов или при большой команде это приводит к разъезжающимся страницам
Существенно уменьшить усилия на изучение проекта для нового разработчика. Все части вёрстки разложены по файлам и папкам с интуитивно понятными именами
Избавиться от копипаста в рамках страницы/сайта/портала. Блок это готовая часть вёрстки, его можно и нужно повторно использовать. Элементы и модификаторы позволяют точечно вносить изменения для каждого случая использования этого блока, избегая взаимное влияние использования модифицированных блоков на одной странице
Избавиться от копипаста, если необходимо внести изменение в определенный компонент вёрстки. Не нужно делать правки в 100500 местах, правки вносятся в одном месте
Ценой этого является высокий порог входа к использованию БЭМ. Это принять БЭМ в сердце, разобраться с инструментами сборки, применимыми к вашему случаю, донести БЭМ до окружающих коллег. Стоит ли заплатить эту цену, решать вам.
Про АНБ в контексте БЭМ хорошо сказано здесь https://ru.bem.info/forum/issues/-46/
По сути это два правила:
Всем элементам внутри блока надо задать классы, т.е. не опираться в CSS на имена элементов
Все классы, на которые накладываются стили этого блока, должны быть уникальными, например, начинаться с имени класса корневого элемента
Комментариев нет:
Отправить комментарий