© 2021 WebHive

Что выбрать - ember.js или backbone.js? Раунд первый.

В свое время встал вопрос — какой javascript фреймворк выбрать для разработки на клиенте. Корячиться с jquery временами стало совсем невыносимо. После длительного гугления и вдумчивого поглощения доступной информации выбор пал на ember.js, который я боле-менее освоил и даже использовал в одном из проектов. Но тем не менее явный лидер среди этих движков так и не появился, да и кругозор не помешает расширить, поэтому решил рассмотреть поподробнее наверно самый популярный javascript фреймворк на сегодня — backbone.js.

Кто-то скажет, что мол это разного уровня движки и сравнивать их нельзя, но я все-таки попробую. Собственно я не собираюсь устраивать какой-то глобальный, фундаментальный анализ и сравнивать я собираюсь именно те моменты которые сравнивать как я считаю можно.

Data binding

Собственно на этом месте обзор можно наверно будет и заканчивать, т. к. после двустороннего связывания (2-way binding) у ember.js смотреть без слез на потуги сторонников backbone.js просто невозможно.

Для непосвящённых поясню (сам когда-то с трудом понимал о чем собственно тут речь). В обоих движках при изменении данных (модели) происходит автоматическое отображение изменения этих данных на экране во всех местах которые были связаны с моделью.

Однако в ember.js верно и обратное — при изменении отображения данных в браузере автоматически меняются данные в модели. Это касается прежде всего форм (а больше я как-то и не представляю где еще оно может меняться). И вот в backbone.js такого нет. Я наивно полагал, что возможно есть какие-то расширения к backbone.js, которые позволяют это сделать, но таких не нашел (хотя не сильно и искал).

Ну вообще если быть совсем точным связывание это необязательно данные и отображение — могут быть и другие варианты, но именно связывание модели и отображения ее в браузере наиболее типичный случай.

PS: справедливости ради должен отметить, что нашел таки что-то насчет двустороннего связывания для backbone.js, поэтому возможно запилю еще статью на эту тему

Комментарии