Форум

Методологія

Інструментарій

Платформа

Спільнота

Перевод этой статьи на ваш язык отсутствует, вы можете помочь нам перевести.

Взаимодействие блоков и элементов

В рамках БЭМ-методологии блоки и элементы следует разрабатывать так, чтобы свести к минимуму зависимость состояний одних сущностей от других. Однако на практике идеал полной независимости блоков недостижим.

Взаимодействие блоков и элементов может быть реализовано:

  • с помощью подписки на БЭМ-события;
  • с помощью непосредственного вызова методов других экземпляров или статических методов класса;
  • через проверку состояний одного экземпляра из другого.

Примечание Не используйте DOM-события для организации взаимодействия между экземплярами. DOM-события следует использовать только во взаимодействиях экземпляра со своим DOM-узлом.

Для реализации взаимодействия блоков или элементов i-bem.js предоставляет API:

Доступ к классам блоков и элементов

Классы блоков и элементов, можно получить через модульную систему ym. Это же верно и для блоков и элементов без DOM-представления.

Доступ к классам блоков и элементов необходим для:

Пример

Блок button наследуется от базового блока control:

modules.define('button', ['i-bem-dom', 'control'], function(provide, bemDom, Control) {

provide(bemDom.declBlock(this.name, Control, {}));

});
Якщо ви помітили помилку, або хочете доповнити статтю, ви завжди можете або написати нам про це на Гітхабі, або поправити статтю з допомогою prose.io.