你是否应该使用一个Javascript MVC框架?本文摘自smashingmagazine的Journey Through The JavaScript MVC Jungle部分内容,希望对大家有帮助,如果你觉得不过瘾,可以阅读原文。

什么时候需要使用Javascript MVC框架?

如果你开发的程序可能需要和API或者服务通讯,而且要求大量的视图操作或者数据操作,你将发现使用一个成熟的框架非常有帮助。典型的例子就是Gmail和Google Docs。

如果你的应用只是依赖于服务器来生成web页面和视图,并且只需要使用一些简单的JavaScript或者jQuery来使得应用更加具有互动性,使用框架就不是很有必要。

选择框架的标准

如果你需要选择框架的话,你需要问问自己这些问题:

  • 这个框架究竟可以带来什么?
  • 这个框架是不是有实际的成功案例?
  • 这个框架是不是成熟?
  • 这个框架是不是足够灵活或者相对比较死板?
  • 你有没有应用过相关的框架?
  • 这个框架是不是有很好的文档支持?
  • 这个框架的大小,包括依赖的类库,是不是很大?
  • 支持这个框架的社区是不是不错?

如何选择框架?什么时候该用什么?

为了更好的帮助大家选择框架,这里我们做了一个总结,希望能够帮助大家选择框架:

1.  Backbone.js

如果你需要灵活的方式来解决应用中层次分离问题,并且支持持久层和REST同步服务、models、views、事件驱动、模板和定位等,这个框架是个不错的选择。它允许model修改后View能够自动更新。而且很多大型公司都使用它来构建应用,并且有非常好的社区提供支持。

2.  Ember.js

如果你需要桌面级别的应用开发,并且拥有模块化、标准的界面,并且支持MVC的特性,不需要我自己处理所有的东西,要求支持持久化、计算相关属性并且自动更新模板,支持正确的状态管理而非手动的控制管理,Ember.js是不错的选择,同时它拥有非常详细的文档和模板说明,并且拥有丰富的工具。

3.  CanJS

轻量级的框架,支持模板绑定、定向,整合主流类库(jQuery或者Dojo)以优化性能,支持MVC。可能在大型的应用中使用不多,但是适合于有复杂应用开发经验的人,在这种情况下,canjs是个不错选择。

4.  AngularJS

支持快速测试、URL管理和分离的MVC。和其它的框架不一样,AngularJS提供了HTML编译器来创建自己的HTML中的DSL。

5.  Dojo

为开发大型应用提供了非常棒的基础。支持成熟的组件架构,模块支持lazy加载并且支持异步,简单整合CDNs,拥有广泛的模块(图形、图表、Grid等),支持国际化、本地化,支持OOP、MVC,并且支持创建单元来解决复杂的架构。

6.  YUI

支持Model、View和Router,简化多视图应用的开发,支持routing、视图变化等。拥有完整的解决方案,包括组件、控件及相关工具,帮助你创建一个有组织的应用架构,拥有底层工具yuiproject。

7.  Spine

帮助你简单的实现异步界面并且不需要任何依赖。对于创建比较灵活的应用,Spine提供了必要的架构,例如model、view、controller、事件和routing。针对CoffeeScript做了优化,拥有非常清晰的文档。

8.  KnockoutJS

可以方便的使用底层数据模型构建复杂动态的UI。使用双向绑定,Model变化后能够自动更新UI,支持依赖来跟踪model数据,支持内建模板,并且很容易扩展。

9.  jQuery

轻松搭建网站和web应用,不需要很多代码。专注于浏览器的兼容,使开发者专心于开发本身,并且可以轻松绑定事件、与远程服务互动,支持扩展,拥有大量的插件。

你是否应该使用一个Javascript MVC框架?的更多相关文章

  1. 2015年3月26日 - Javascript MVC 框架DerbyJS DerbyJS 是一个 MVC 框架,帮助编写实时,交互的应用。

    2015年3月26日 -  Javascript MVC 框架DerbyJS DerbyJS 是一个 MVC 框架,帮助编写实时,交互的应用.

  2. 【JavsScript】JavaScript MVC 框架技术选型

    你很喜欢Gmail和Trello之类的单页面应用,但是不太确定该从何开始.也许你的JavaScript代码是如此的杂乱无章,以致于你很想在下一个项目上尝试下JavaScript MVC库和框架,却苦于 ...

  3. 【JavsScript】JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember

    摘要:选择JavaScript MVC框架很难.一方面要考虑的因素非常多,另一方面这种框架也非常多,而要从中选择一个合适的,还真得费一番心思.本文对JavaScript MVC框架Angular.Ba ...

  4. 【转】12 款优秀的 JavaScript MVC 框架评估

    JavaScript MVC 框架有很多,不同框架适合于不同项目需求.了解各种框架的性能及优劣有利于我们更加快捷的开发.作者(Gordon L.Hempton)一直在寻求哪种MVC框架最为完美,他将目 ...

  5. JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  6. JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember(转载)

    原文地址:http://sporto.github.io/.../comparison-angular-backbone-can-ember/ 原文作者:Sebastian Porto @Twitte ...

  7. 12种JavaScript MVC框架之比较

    Gordon L. Hempton是西雅图的一位黑客和设计师,他花费了几个月的时间研究和比较了12种流行的JavaScript MVC框架,并在博客中总结了每种框架的优缺点,最终的结果是,Ember. ...

  8. 转:12种JavaScript MVC框架之比较

    Gordon L. Hempton是西雅图的一位黑客和设计师,他花费了几个月的时间研究和比较了12种流行的JavaScript MVC框架,并在博客中总结了每种框架的优缺点,最终的结果是,Ember. ...

  9. javascript:12种JavaScript MVC框架之比较

    Gordon L. Hempton是西雅图的一位黑客和设计师,他花费了几个月的时间研究和比较了12种流行的JavaScript MVC框架,并在博客中总结了每种框架的优缺点,最终的结果是,Ember. ...

随机推荐

  1. php学习之道:mysql SELECT FOUND_ROWS()与COUNT(*)使用方法差别

    在mysql中 FOUND_ROWS()与COUNT(*)都能够统计记录.假设都一样为什么会有两个这种函数呢.以下我来介绍SELECT FOUND_ROWS()与COUNT(*)使用方法差别 SELE ...

  2. Android的相关的源代码的方法

    这里给大家介绍一个非常方便的相关法源代码. 1.打开Android SDK Manager.把你所使用的版本号的API给下载下来,例如以下图所看到的... 2.关联源代码时,将源代码关联到相应API的 ...

  3. Android Context MODE的四种模式解析(转)

    Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中.可以使用Context ...

  4. 每天收获一点点------Hadoop之HDFS基础入门

    一.HDFS出现的背景 随着社会的进步,需要处理数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是却不方便管理和维护—>因此,迫切需要一种系统来管理多 ...

  5. 使用newLISP由SMTPserver发送电子邮件

    直接使用的标准模块smtpx.lsp, smtp.lsp你可以不设置port,庭审后,没用. 以下是一个示例代码: #!/usr/bin/newlisp (set 'debug-flag true) ...

  6. MongoDB初学者的配置环境和基础设施的使用

    一个.mongoDB安装 1.第一MongoDB官方网站下载安装包http://www.mongodb.org/. 依照自己的操作系统进行下载. 2.在硬盘上建立两个文件夹分辨存放mongoDB安装文 ...

  7. 1711 Number Sequence(kmp)

    Problem Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], .... ...

  8. 处理器(CPU)调度问题

     因为处理器是最重要的计算机资源,提高利用率并提高系统性能的处理器(吞吐量.响应时间).于处理机调度性能的好坏,因而,处理机调度便成为操作系统设计的中心问题之中的一个. 一.处理机调度的层次 1. ...

  9. java_软件发布版本_Asynch HttpClien 对比发行版本说明_Alpha、Beta、RC、GA版本的区别

    今天看了一天的apache 的httpasyncclient ,为了和默认的httpclient做个对比,httpcore是核心轻量级的提供传统阻塞IO 和 java NIO两种方式,httpclie ...

  10. 【百度地图API】如何区分地址解析和智能搜索?

    原文:[百度地图API]如何区分地址解析和智能搜索? 摘要: 很多用户一直无法区分地址解析geocoder和智能搜索localsearch的使用场景.该文章用一个详尽的示例,充分展示了这两个类,共5种 ...