你是否应该使用一个Javascript MVC框架?
2013-04-26 13:09
323 查看
本文摘自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应用,不需要很多代码。专注于浏览器的兼容,使开发者专心于开发本身,并且可以轻松绑定事件、与远程服务互动,支持扩展,拥有大量的插件。
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框架?
- 你是否应该使用一个Javascript MVC框架?
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- 使用Phalcon框架开发一个简易的博客系统
- 判断一个自然数是否是某个数的平方。当然不能使用开方运算—谷歌
- 使用Nodejs的Express框架快速地创建一个网站
- 如何检查一个档案是否被异动过,使用 CRC32
- 使用Akka实现一个简单的RPC框架(一)
- 使用Nancy和Simple.Data两个轻量级的框架打造一个分布式开发系统
- python keras (一个超好用的神经网络框架)的使用以及实例
- 给出一个2D板和一个单词,找出这个单词是否存在于网格中。 该单词可以由顺序相邻单元的字母构成,其中“相邻”单元是水平或垂直相邻的单元。 相同的字母单元可能不会被多次使用。
- 使用jquery判断一个元素是否含有一个指定的类(class)
- 使用 Jenkins 设置一个持续交付框架
- 第一次使用Android Studio时你应该知道的一切配置(二):新建一个属于自己的工程并安装Genymotion模拟器
- 使用react-native做一个简单的应用-04界面主框架
- asp.net中使用TimeSpan计算会员是否应该赠送积分的解决方案
- 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
- 使用API获取一个应用是否运行结束的例子
- 使用python检测一个设备是否ping的通
- js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式