Доброго времени суток.
Я в беме новичек, но заметил одну характерную черту bem библиотек - они жестко связаны.
Пример: bem-mvc
. Я понимаю, что библиотека разработана в контексте bem, но допустим мне понравилась реализация моделей и я хочу использовать модели и только, но судя по всему такой возможности нет - потому что имеет жесткую зависимость от bem-core
.
Ожидание:
import {createModel} from 'bem-mvc';
const User = createModel({ /* config */ });
// I can use model User without bem, or with it
BEM.registerModel('User', User);
// or
BEM.registerModel('User', createModel({ /* ... */ }));
Реальность:
BEM.MODEL.decl({ /*...*/ });
Плюсы от уменьшения связности мне кажутся очевидными. Это: изоляция функциональности, упрощение тестирования, возможность использования моделей в проектах без bem-core
, что на самом деле хорошо, потому что инструмент самодостаточен и может использоваться большим количеством людей, которым не нужны лишние зависимости.
Это лишь мое мнение. Извините, если все на самом деле не так.