- Сборка проекта:
npm run build
- Разработка:
npm run dev
- desktop.bundles – страничные бандлы (common-bundle, page-bundle)
- desktop.libs – блоки с библиотеками (backbone, underscore, jquery)
- desktop.blocks – BEM-блоки с i-bem API и Yate шаблонами
- desktop.modules – модули с бизнес-логикой и хелперы
- desktop.mvc – Backbone: Model, View/Controller, Collection
- desktop.widgets – Приложения: Backbone + i-bem
Все элементы из desktop.mvc подключаются и декларируются через модули Require
В случае, если кусок представления еще не существует в DOM, то нам необходимо его вставить, проинициализировать и после использовать. Так, как доступ к API блока мы можем получить, только после того, как он появится в DOM, то код создания вью (с бем блоком) нужно где-то хранить.
- w-obligators-total VS w-bem-obligators-total – тут все ок, Backbone BemView легко заменяется чисто i-bem.js
- w-obligators VS w-bem-obligators – а вот тут болт, и i-bem.js не готов к этой задаче
Приложение представляет из себя виджет (BEM блок), который объединяет в себе:
- Backbone: Model, View/Controller, Collection
- BEM-блоки с API для взаимодействия с ними из Backbone Controller
- Объявляем в разметке виджет, который представляет из себя BEM-блок
- Декларируем в deps виджета зависимости от Backbone View/Controller
- Каждый Backbone View/Controller знает о своих зависимостях, таких, как:
- BEM-блок c API (он не привязан к Backbone и может использоваться без него)
- Backbone Model – конструктор модели
- Backbone Collection – конструктор коллекции
- Каждый Backbone View/Controller знает о своих зависимостях, таких, как:
- Через Require-модуль прокидываем данные для Backbone Model или Collection через событие
- Инициализиурем виджет, в onSetMode виджета, слушаем Require-модуль и ждем данных, пишем логику взаимодействия компонентов приложения
- Создаем инстансы Backbone Collection или Backbone Model
- Создаем инстансы Backbone View/Controller и при необходимости прокидываем туда Backbone Collection или Backbone Model
- Двунаправленное взаимодействие View (DOM) с Backbone View/Controller происходит через API и события BEM-блока
? BB Router, добавление роутов относительно подключаемых виджетов
...coming soon...