JavaScriptMVC - отличный выбор для организации и разработки крупномасштабного приложения JS.
Архитектурный дизайн очень хорошо продуман. Есть 4 вещи, которые вы когда-либо будете делать с JavaScript:
- Ответить на событие
- Запрос данных / управление сервисами (Ajax)
- Добавить информацию о домене к ответу ajax.
- Обновление DOM
JMVC разбивает их на шаблон Модель, представление, контроллер.
Первое и, возможно, самое важное преимущество - это контроллер. Контроллеры используют делегирование событий, поэтому вместо прикрепления событий вы просто создаете правила для своей страницы. Они также используют имя контроллера, чтобы ограничить область действия контроллера. Это делает ваш код детерминированным, то есть, если вы видите, что событие происходит в элементе #todos, вы знаете, что должен быть контроллер todos.
$.Controller.extend('TodosController',{
'click' : function(el, ev){ ... },
'.delete mouseover': function(el, ev){ ...}
'.drag draginit' : function(el, ev, drag){ ...}
})
Далее идет модель. JMVC предоставляет мощный класс и базовую модель, которая позволяет быстро организовать функциональность Ajax (# 2) и обернуть данные функциональностью, специфичной для домена (# 3). После завершения вы можете использовать модели из вашего контроллера, как:
Todo.findAll ({after: new Date ()}, myCallbackFunction);
Наконец, когда вернутся ваши задачи, вы должны отобразить их (# 4). Здесь вы используете вид JMVC.
'.show click' : function(el, ev){
Todo.findAll({after: new Date()}, this.callback('list'));
},
list : function(todos){
$('#todos').html( this.view(todos));
}
В 'views / todos / list.ejs'
<% for(var i =0; i < this.length; i++){ %>
<label><%= this[i].description %></label>
<%}%>
JMVC предоставляет гораздо больше, чем архитектура. Это поможет вам в любой части цикла разработки с:
- Генераторы кода
- Интегрированное тестирование браузеров, Selenium и Rhino
- Документация
- Сжатие скрипта
- Сообщение об ошибке