你是否应该使用一个Javascript MVC框架?
jopen 12年前
<div id="news_body"> <p> 本文摘自 smashingmagazine 的 <a href="/misc/goto?guid=4958523962656904925" target="_blank">Journey Through The JavaScript MVC Jungle</a> 部分内容,希望对大家有帮助,如果你觉得不过瘾,可以阅读原文。</p> <p style="text-align:center;"><img alt="你是否应该使用一个Javascript MVC框架?" src="https://simg.open-open.com/show/169e422dac39370eb48d38d4f34880cf.jpg" width="300" height="290" /></p> <p> <strong>什么时候需要使用 Javascript MVC 框架?</strong></p> <p> 如果你开发的程序可能需要和 API 或者服务通讯,而且要求大量的视图操作或者数据操作,你将发现使用一个成熟的框架非常有帮助。典型的例子就是 Gmail 和 Google Docs。</p> <p> 如果你的应用只是依赖于服务器来生成 web 页面和视图,并且只需要使用一些简单的 JavaScript 或者 jQuery 来使得应用更加具有互动性,使用框架就不是很有必要。</p> <p> <strong>选择框架的标准</strong></p> <p> 如果你需要选择框架的话,你需要问问自己这些问题:</p> <ul> <li>这个框架究竟可以带来什么?</li> <li>这个框架是不是有实际的成功案例?</li> <li>这个框架是不是成熟?</li> <li>这个框架是不是足够灵活或者相对比较死板?</li> <li>你有没有应用过相关的框架?</li> <li>这个框架是不是有很好的文档支持?</li> <li>这个框架的大小,包括依赖的类库,是不是很大?</li> <li>支持这个框架的社区是不是不错?</li> </ul> <p><strong>如何选择框架?什么时候该用什么?</strong></p> <p> 为了更好的帮助大家选择框架,这里我们做了一个总结,希望能够帮助大家选择框架:</p> <p> <strong>1. Backbone.js</strong></p> <p> 如果你需要灵活的方式来解决应用中层次分离问题,并且支持持久层和 REST 同步服务、models、views、事件驱动、模板和定位等,这个框架是个不错的选择。它允许 model 修改后 View 能够自动更新。而且很多大型公司都使用它来构建应用,并且有非常好的社区提供支持。</p> <p> <strong>2. Ember.js</strong></p> <p> 如果你需要桌面级别的应用开发,并且拥有模块化、标准的界面,并且支持 MVC 的特性,不需要我自己处理所有的东西,要求支持持久化、计算相关属性并且自动更新模板,支持正确的状态管理而非手动的控制管理,Ember.js 是不错的选择,同时它拥有非常详细的文档和模板说明,并且拥有丰富的工具。</p> <p> <strong>3. CanJS</strong></p> <p> 轻量级的框架,支持模板绑定、定向,整合主流类库(jQuery 或者 Dojo)以优化性能,支持 MVC。可能在大型的应用中使用不多,但是适合于有复杂应用开发经验的人,在这种情况下,canjs 是个不错选择。</p> <p> <strong>4. AngularJS</strong></p> <p> 支持快速测试、URL 管理和分离的 MVC。和其它的框架不一样,AngularJS 提供了 HTML 编译器来创建自己的 HTML 中的 DSL。</p> <p> <strong>5. Dojo</strong></p> <p> 为开发大型应用提供了非常棒的基础。支持成熟的组件架构,模块支持 lazy 加载并且支持异步,简单整合 CDNs,拥有广泛的模块(图形、图表、Grid 等),支持国际化、本地化,支持 OOP、MVC,并且支持创建单元来解决复杂的架构。</p> <p> <strong>6. YUI</strong></p> <p> 支持 Model、View 和 Router,简化多视图应用的开发,支持 routing、视图变化等。拥有完整的解决方案,包括组件、控件及相关工具,帮助你创建一个有组织的应用架构,拥有底层工具 yuiproject。</p> <p> <strong>7. Spine</strong></p> <p> 帮助你简单的实现异步界面并且不需要任何依赖。对于创建比较灵活的应用,Spine 提供了必要的架构,例如 model、view、controller、事件和 routing。针对 CoffeeScript 做了优化,拥有非常清晰的文档。</p> <p> <strong>8. KnockoutJS</strong></p> <p> 可以方便的使用底层数据模型构建复杂动态的 UI。使用双向绑定,Model 变化后能够自动更新 UI,支持依赖来跟踪 model 数据,支持内建模板,并且很容易扩展。</p> <p> <strong>9. jQuery</strong></p> <p> 轻松搭建网站和 web 应用,不需要很多代码。专注于浏览器的兼容,使开发者专心于开发本身,并且可以轻松绑定事件、与远程服务互动,支持扩展,拥有大量的插件。</p> <div id="come_from"> 来自: <a id="link_source2" href="/misc/goto?guid=4958523962743271622" target="_blank">www.gbin1.com</a> </div> </div>