前端框架的作用是什么?什么时候需要用到前端框架?

比如Angular.js、Backbone.js,他们出现的原因是什么?有什么优点?

阅读 26k
4 个回答

他们出现的原因是什么?

当前端从 Web Page 变成了 Web App 时,就需要前端框架了。

有什么优点?

自行 Google。


更新

在评论中,@C860 说

就目前的WEB PAGE来说,引入前端框架已经是大势所趋了。很多时候后端的一些数据处理都转移给了前端去完成,特别是在REST模式下。

就他的描述来看,后端的一些数据处理都转移给了前端去完成 这绝对不是 Web Page,这明显已经是 Web App 了。

  • Web Page 以表现为主
  • Web App 以应用为主

现在我们在 web 上,已经不仅仅是去了,我们更多的时候是去

大公司有没有用我不敢轻易下结论,但是我知道 TX 他们有自己写的库

看来他还真是把 Web Page 和 Web App 理解错了,TX 的公司网站是 http://www.tencent.com 我不用看他的源码,就可以猜出,这么个 Web Page 型网站,不会去使用这些 MVC 框架的。如果他提到的 TX网站 是QQ空间、WebQQ,那就是 Web App 了。

更新2

也许很多人不太理解 Web Page 和 Web App 的区别。不仅仅是 Web,就连现在的桌面软件,手机软件(呃~我提到这个词会被行家笑话的,应该叫“移动App”、“手机应用”、“……”)。

为什么我们发明了这么个新名词呢?App。

如果你有使用 VC、VB、Delphi、PB 的开发经验,就会注意到我们建立新项目时,会有几个选择 Win32、Console、桌面软件、Lib、……

换句话说:“并不是所有的软件都是 App”,软件分很多种,如果我们写一个水仙花数的解法,那么,我们编写的是“程序program”,广义的说,这其实也勉强算是一个APP吧(你可以包装一下),因为他确实是一个应用,他可以用来解决我们的一个或者几个问题。

或者你把他再包装一下,写个文档,使用手册,……那么你可以说你开发了一个“软件software”。

如果你开发的是类库,比如你开发了一个 jquery,开发了一个 spring,那么即使你的程序编写的再好,他也不是一个 APP。

如果你开发了一个系统软件,比如编译器,比如驱动程序,比如文件系统……那么这个也不是APP。

那什么是 web app 呢?就是 Web 应用。(这不废话吗!)

Web 最初出现的时候,可以说仅仅是颠覆了传统传媒业,颠覆了报纸业,新闻业,…… 我们做了那么多网页(Web Page 翻译的多贴切,web就是网,page就是页)。

后来,java applet、flash、javascript、slivelight、flex……各种技术的出现,改变了人们发布和部署APP和software的方式,虽然悄无声息,但也绝对是软件发布方式的一次革命。

减少了对css img js 等静态资源的请求次数 。
让不断刷新从服务器获得静态页面的流程 变成了纯粹的客户端对服务端的请求数据-组织数据-显示数据的流程 。

相比而言,前端框架分很多种,可以把bootstrap也叫作前端框架,也可以把jQuery zepto等叫做前端框架,当然AngularJS Backbone也叫做前端框架。
不同就在于他们所针对的意义不一样


bootstrap偏向于大而全,你想加个导航可以有,加个按钮可以有。
像是超市,要什么直接搬出来就可以。

jQuery, Zepto则更“高级”,或者说更“低级”一些,他并没有直接给你提供按钮 事件响应等,而且帮你设置好了许许多多的方法,需要什么自己来实现,所以不仅限于按钮,You can do better。像是工具箱,里面只有扳手和锤子,虽然不可以直接吃直接用,但是可以造出房子,造出生产吃的的机器(成品)。

而AngularJS和Backbone则更高级了,当然也更“低级”。
他们的意义不在于如何吃,如何造。而更像是如何吃的更香,如何让吃的看起来更像以及如何吃起来看着更香……

AngularJS很伟大的一点之一就是实时,这一点改变了很多很多,而且意义非凡,将传统的“点一下,弹一下”,变成了“ ” 。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏