阅读更多

15顶
1踩

Web前端
本文摘自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应用,不需要很多代码。专注于浏览器的兼容,使开发者专心于开发本身,并且可以轻松绑定事件、与远程服务互动,支持扩展,拥有大量的插件。
来自: www.gbin1.com
15
1
评论 共 13 条 请登录后发表评论
13 楼 marshal 2014-03-12 21:09
我选择的是canjs,这是刚写的一篇文章:http://blog.shiqichan.com/us-canjs-for-developing-web-app/  希望对别人有帮助。
12 楼 mu0001 2012-09-14 10:47
Backbone在学习中.....
11 楼 jmxmzhy 2012-09-13 17:40
ohunbeyond 写道
czpae86 写道
fangzhouxing 写道
为何没有 ExtJS ?

因为商用收费,而且比较强大

+1
因为Ext太强大,和上面这些根本不是同一个水平的东西!



10 楼 ohunbeyond 2012-09-13 12:16
czpae86 写道
fangzhouxing 写道
为何没有 ExtJS ?

因为商用收费,而且比较强大

+1
因为Ext太强大,和上面这些根本不是同一个水平的东西!
9 楼 czpae86 2012-09-13 12:03
fangzhouxing 写道
为何没有 ExtJS ?

因为商用收费,而且比较强大
8 楼 TheMatrix 2012-09-13 11:54
Ext集大成 跟VS似的
7 楼 fglbee 2012-09-13 08:36
Ext 做后台管理也很合适,不过学习曲线有点陡峭
6 楼 无语僧 2012-09-12 11:30
KnockoutJS 蛮好用的
5 楼 witcheryne 2012-09-12 10:30
Ember.js 原先好像叫  SproutCore. All in One 试的解决方案.
4 楼 beiyeren 2012-09-12 10:16
只用过jquery。
3 楼 墨子宇 2012-09-12 09:47
Ext那个东东收费
2 楼 fireaap 2012-09-12 09:02
fangzhouxing 写道
为何没有 ExtJS ?

ExtJS太臃肿
1 楼 fangzhouxing 2012-09-11 16:27
为何没有 ExtJS ?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 表情工厂(表情制作神器) v1.3.0 iPhone版.zip

    不管你喜欢日漫美漫还是H漫,科幻片爱情片还是动作片,漫画表情里独有的“动漫 电影”分类, 让你置身漫画世界!真是酷毙了!   【表情相册】 用表情工厂制作做的表情,都会珍藏在这里。听说96%的人在翻阅表情...

  • iPhone开发Swift基础02 触控、动画、声音

    制作关键帧动画的步骤有: 设置关键帧动画的视图属性,如opacity、position、transform、bounds等 设置属性在开始、中间、结束等多个阶段的值 设置两个关键帧之间的时长 设置整个动画的播放时长 //添加代理协议...

  • 仿苹果手机_仿iphone12充电动画下载-仿iphone12充电动画软件下载 v1.1

    仿iphone12充电动画是一款专为苹果手机的用户带来最新的充电动画设置软件,大家在手机上可以看到很多的充电动画,有很多的选择,这里面的服务功能有很多,用户在手机上会看到很多不同类型的充电动画,喜欢什么类型的...

  • 高效制作动画-Adobe Animate CC

    前言说起动画H5,作为一个前端,可谓是“又爱又恨”。爱的是加上动画动效后H5会变得生动有趣,吸引力Max;恨的是做动画时都是一边在脑海中yy效果,一边用css、js代码模拟出来,既低效又不直观,正所谓“产品一句话,...

  • 如何使用MidJourney和ChatGPT制作动画短片?

    Ammaar Reshi当我制作这部使用生成式人工智能制作的蝙蝠侠动画短片时——我不知道它会在不到一周的时间内获得 700 万次观看。想学!给我们讲解下是整体的制作流程吧!!opus Ammaar Reshi我不是电影制作人,也从未写...

  • 使用iPhone为Apple Watch制作动画

    (原文:Make Animations for APPLE WATCH Using iPhone作者:Andy Drizen 译者:xiaoying) 无论要做一个像hamburger button这样小的特性还是要做一个全新的用户界面,动画都是在iOS应用开发中非常重要的一环。一...

  • iphone可以安装html5,如何制作一个HTML5的iPhone应用程序

    在过去的一年里,你是不是很沮丧,对于所有的使用Objective-C开发iPhone程序的开发者而言,日子都不那么好过,你是不是为了学习开发iPhone应用程序曾经硬着头皮去读着那生涩难懂的学习教程,事实是Objective-C是一门...

  • CAGradientLayer(颜色渐变) -- 实现iphone手机屏幕“滑动来解锁”动画效果

    每次打开iphone手机前,我们都能见到一个动画效果 – “滑动来解锁”!本篇文章来介绍怎么实现颜色渐变的效果!

  • 在iPhone上平滑动画的简单策略

    虽然许多移动平台有触摸功能,这是iphone现实物理和流畅的动画,使它区别于它的竞争对手。然而,糟糕的滚动毁掉了体验。Twitter针对iphone 4.0的新UI包含了许多可能影响性能的细节,所以我们不得不以处理60帧每秒的...

  • Html5实现iPhone开机界面

    Shape.js是用来绘画我们iphone手机外壳用的类,而BootPage.js是开机界面的类。两者的功能不同,相当于Shape.js用来处理硬件外观,BootPage.js用来处理显示。 其他的就留个大家自己看吧。虽然代码有点

  • (译)如何在cocos2d里面使用动画和spritesheet

     在这个教程里,我将向大家展示如何用cocos2d来制作一只熊在走路的动画。同时,我会使用spritesheet来使动画运行效率更高,还有如何让用户鼠标点击决定熊的行走方向,以及怎样基于熊当前行进的方向改变熊的面朝方向...

  • iOS图像渲染 + 动画探索

    处理定时器或者网络事件并且重新绘制屏幕的东西),即使你不显式的用[CATransaction begin]开始一次事务,任何在一次run loop循环中属性的改变都会被集中起来,然后做一次0.25秒的动画。事务是通过CATransaction类来...

  • iphone3开发基础教程

    6.4 制作转换动画 101 6.5 小结 103 第7章 标签栏与选取器 104 7.1 Pickers应用程序 104 7.2 委托和数据源 106 7.3 建立工具栏框架 106 7.3.1 创建文件 107 7.3.2 添加根视图控制器 108 7.4 实现日期选取器 112 7.5...

  • html页面滚动加载页面的动画,网站页面滚动加载动画JS特效

    终于尘埃落定了,前段时间忙的不可开交,结婚,工作,因为婚假+年假一起休的,导致很长时间没有更新博客了,今天抽空给大家带来了一个js特效,网站模块延迟加载的动画,假期之前就想着制作这个功能,页面滚动加载,...

  • iOS 动画原理与实现--帧动画、逐帧动画、CALayer

    这篇文章不会教大家如何实现一个具体的动画效果,我会从动画的本质出发,来说说 iOS 动画的原理与实现方式。 什么是动画 动画,顾名思义,就是能“动”的画。 人的眼睛对图像有短暂的记忆效应,所以当眼睛看到多...

  • 关于动作捕捉动画一些记录

    记录了一下目前个人接触到的动捕动画的软件插件的一个总结;以及使用移动设备实时对面部表情动画的捕捉和面部表情动画数据的一个记录。

  • html中动画链接怎么写,Html5页面内使用JSON动画的实现

    问题背景有一天我们的UI设计师找到我说,要把页面中我自己用程序写的动画,换成他们给的json动画,原因是有的动画很复杂,自己写起来达不到他们的预期效果(写到这里我突然想到一个问题,这么复杂的动画为什么不使用...

  • iOS实现正弦函数渐变动画,波浪线渐变动画的实现思路

    在iOS里面单独的波浪线使用CAShapeLayer设置strokeColor,创建CGMutablePathRef使用正弦函数sin获取y值,连接成点CGPathAddLineToPoint得到一条曲线,然后赋值给图层。这个mask可以控制显示的区域,mask也是layer...

  • Cocos2dx使用spine骨骼动画导致在iphone6s、iphone7真机闪退的解决办法

    在cocos2dx 3.x版本中,在某些情况下使用了spine骨骼动画和LayerColor,可能会导致在iphone6s,和iphone7真机上闪退,其他机型正常,xCode调试发现是在LayerColor::onDraw glDrawArrays(GLTRIANGLE_STRIP, 0, 4)这个...

  • 2024年机器人大作业代码

    2024年机器人大作业代码

Global site tag (gtag.js) - Google Analytics