关于javascript的框架
14 November 2014
前言
说道接触javascript,最早可追溯到大二暑假,留校给学校开发研究生管理网站。那时候,动漫瘾还很大,并且第一次接触Extjs,RIA以及ASP.NET,MVC框架之类的。。啊,真是令人怀恋的过去。
投身web界后,发现近来javascript风头正劲,各种框架层出不穷,令人目不遐接,目瞪口呆,世界啊,你等等我吧。偶得一文,觉得总结的不错,内容如下:
正文
目前HTML5涉及的框架大致可以分成以下几类:
- 跨平台开发框架:PhoneGap 、 Titanium、 Trigger.IO(商业)- 这类框架是向web提供底层硬件的接口,让开发人员可以用WEB的技术开发出Native APP。
- UI框架:jQuery Mobile、 Sencha Touch(前身为Extjs)、 jqMobi - 这类框架提供“控件”:布局、按钮。。。。。。
- MVC框架:Backbone.js、 Spine.js、 Ember.js - 这类框架提供在javascript端上Model、View分离的技术,因为在one page的情况下,javascript控制的逻辑越来越复杂,需要做这样的分离。
- 依赖与加载框架:Require.js、 Sea.js - 当我们要写一个稍大型的web应用的时候,必然会面对不同JS文件间的引用,JS的同步、异步加载等需求,这种框架就是帮我们解决这样的问题的。
PhoneGap
特点:
- 开源
- 一次编写,处处运行(IOS、Andriod、Win Phone)
- 支持GPS、摄像头、文件系统。。。等系统接口
jQuery Mobile
地址: http://jquerymobile.com 特点:
- 如果想要开发一款接近原生UI的应用,那采用一款UI框架会节省你很多的时间,jQuery Mobile就是这样的一个UI框架。
- 不喜欢jQuery,可以选择其他的DOM选择器
- 社区很活跃
Bootstrap这样响应式的开发更受欢迎,感觉上而言。
Backbone.js
Backbone.js是一款用在客户端javascript上的MVC框架,可以类比Ruby on Rails、Struts等Server端的MVC框架,但实现上存在一定的差别。
将Model的数据表现到view中需要使用模板引擎,Mustache
Mustache
Mustache的特点:
- 支撑广泛的语言种类
- 简单,但是很强大
- 支持循环
underscore
backbone唯一强依赖的js: underscore.js。 其提供的js函数类似ruby中的库函数接口,具体例子如下:
- Collections(集合): each, map, reduce, reduceRight, find, filter, reject, all, any, include, invoke,pluck, max, min, sortBy, groupBy, sortedIndex, shuffle, toArray, size
- Arrays(数组): first, initial, last, rest, compact, flatten, without, union, intersection,difference, uniq, zip, indexOf, lastIndexOf, range
- Functions(函数): bind, bindAll, memoize, delay, defer, throttle, debounce, once, after, wrap,compose
- Objects(对象): keys, values, functions, extend, defaults, clone, tap, isEqual, isEmpty,isElement, isArray, isArguments, isFunction, isString, isNumber, isBoolean,isDate, isRegExp, isNaN, isNull, isUndefined
- Utility(功能): noConflict, identity, times, mixin, uniqueId, escape, template
- Chaining chain, value
地址:
- https://github.com/jashkenas/underscore
- http://underscorejs.org/
Require.js
- 把JS库模块化
- 大型项目必备
- 支持异步加载-加快加载速度
- 支持多文件压缩
其他待续。。。
傲娇的使用Disqus