JavaScriptMVC 是组织和开发大型 JS 应用程序的绝佳选择。
建筑设计经过深思熟虑。您将使用 JavaScript 做 4 件事:
- 响应事件
- 请求数据/操作服务 (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 测试
- 文档
- 脚本压缩
- 错误报告