Matreshka.js — Три возможности

На этот раз вместо статьи было решено сделать видеоролик, объясняющий три немаловажные аспекта API Матрешки. Это пилотный ролик, и, если последует позитивная реакция от сообщества, в планах записать несколько видео туториалов, предположительно, в формате «Х за 60 секунд».

В ролике рассказывается о:

1. Методе реализующем одно/двусторонее связывание данных (bindNode).
2. Зависимостях одних данных от других (linkProps).
3. Возможности прослушивать изменения свойства для запуска произвольного кода.

Матрешку иногда критикуют за способ, который был выбран для связывания данных и представления. Если быть точнее, у разработчиков вызывает вопросы метод bindNode и использования селектора вместо новомодных компонентов или описания логики прямо в HTML коде.

this.bindNode('key', '.selector', binder);


В видео есть ответ на этот вопрос: вьюха — это ни более чем источник данных, событий и способ вывести данные в документ. Преимущество такого подхода в том, что вы не заморачиваетесь с представлением, а работаете с данными, не задумываясь, что произойдет, когда данные изменятся.
Это касается и коллекций, в том числе (в видео о работе с коллекциями ничего не говорится). Вы задаёте несколько правил и, при изменении коллекции, вьюха реагирует сама, а логика приложения содержится в обработчиках событий, которые реагируют на изменения.

this.on('modify', function() {
  // когда коллекция изменится, сделать что-то
}); 

this.push(obj);


Фреймворк был создан благодаря обычной лени и нежелания хранить кучу всего в голове. Приложения создаются последовательно, шаг за шагом, так же, как и описываются ячейки в табличных процессорах: A зависит от B; B зависит от C; A не знает, от чего зависит B; C не знает, что зависит от B. Вместо A, B, C можно подставить и вьюху, и данные.

Кроме этого, с Матрешкой можно сначала описать всё, что отвечает за данные, не задумываясь, откуда они возьмутся (из кода, из вьюхи, из консоли) и куда потом попадут (во вьюху, в обработчик и пр.), а, затем, описать байндинги. Это чертовски удобно.

Репозиторий
Документация на русском

Спасибо за просмотр.

© Habrahabr.ru