Является ли Backbone.js только для одностраничных приложений? - PullRequest
18 голосов
/ 24 октября 2011

Я ищу простую архитектуру для моего пользовательского интерфейса, которая будет иметь некоторые основные функции javascript, такие как: выбрать все флажки, обрезку изображения, некоторые всплывающие окна и некоторые другие плагины.

Я нашел эту статью: Организация вашего приложения Backbone.js с модулями

Мое приложение не является SPA (одностраничное приложение). Я хочу знать, поможет ли мне Backbone.js с jQuery, даже если мое приложение не является SPA.

Ответы [ 3 ]

25 голосов
/ 24 октября 2011

Преимущество Backbone заключается в его способности управлять многими моделями (даже сложными) и синхронизировать отображаемую страницу с их текущими значениями. Он предоставляет интерфейс для функций получения / установки, так что изменение значения модели (существует много разных разновидностей «изменения») вызовет рендеринг в соответствующем представлении, и страница будет правильно отражать базовые модели. Кроме того, он предоставляет интерфейсы для сохранения, пейджинга и маршрутизации действий на моделях.

Я широко использовал Backbone как для SPA (где он сияет), так и для более традиционных многостраничных приложений. Он не имеет специальной поддержки для манипулирования UI и DOM, но в сочетании с jQuery / Prototype / Zepto он управляет их рендерингом / манипуляциями.

По сути, магистраль работает лучше всего, чтобы распутать сложные цепочки логики рендеринга и обновления модели. Если вы чувствуете, что в вашем приложении много элементов представления, которые должны синхронизироваться с моделями, которые клиент будет обновлять на странице, Backbone - прекрасное решение. Если вам просто нужно выбирать элементы DOM и манипулировать ими, это излишне. Только jQuery может справиться с этим.

3 голосов
/ 24 октября 2011

Backbone на самом деле не относится к тем вещам, о которых вы упомянули, но я бы не сказал, что это касается только приложений для одного возраста (SPA).Я бы сказал, что для любого случая, когда у вас есть довольно сложные страницы, и было бы полезно разбить их на несколько частей (например, несколько представлений, которые все извлекают данные из одной модели).

Тем не менее, я бы сказал, что сила Backbone.js заключается в сфере SPA.

Вы, вероятно, могли бы найти некоторые части jQuery, которые отвечают некоторым вашим потребностям, если вы еще не используете jQuery как часть своего приложения.Однако jQuery - это все о упомянутых вами частях (простое манипулирование DOM, всплывающие окна, если вы используете jQuery UI и т. Д.), А не о структуре или организации.

0 голосов
/ 28 июня 2014

Я считаю, что основная идея магистрали - организовать JS-код в сложном приложении с использованием концепции MVC.Таким образом, ваше приложение становится проще в обслуживании и добавлении новых функций. Это упрощает использование тестов фреймворков, таких как jasmine.

Backbone также позволяет (и очень хорошо) работать на основе подхода SPA, используя запрос ajax к серверу.Он полностью основан на концепции Restful, чтобы получить код с использованием магистрали, важно понимать, что такое Restful.

В основном у Backbone есть маршрутизатор (который может работать как контроллер, но не является контроллером).

Модель, в которой вы можете управлять всей логикой данных вашего приложения.Коллекция, которая похожа на список моделей.Посмотрите, где вы будете соответственно реагировать на изменения модели.

Есть и другие вещи, но в основном это так.

Но, как я уже говорил, вы можете использовать его без SPA.

Самое важное, что нужно иметь в виду, это то, что концепция MVC должна соблюдаться при использовании магистрали.Если вы этого не сделаете, не имеет смысла использовать магистраль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...