移动网站用backbone还是angular?
链接:https://www.zhihu.com/question/21871888/answer/26130922
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
Backbone唯一的优势在于学习成本,对于不会如何组织自己的应用程序和懒得去接受比较高级的概念的人来说,Backbone是非常好的选择。吐槽一下Backbone:
- 几乎什么都没干。
- 没有data-binding。纵观这么多MV*框架,Backbone是在这点上最偷懒的一个。所有data和view的数据绑定都要靠自己用事件来绑定。
- SPA很重要一个需要解决的问题就是视图的嵌套和视图的组合。Backbone你需要搭配一个 Marionette.js或者Chaplin才好得心应手。
- 视图爆炸。基本上需要的逻辑都要在view里面处理,view又有复杂的嵌套关系。view会非常的零散,加上view之间依赖,基本上没有扩展性可言。为了解决这个问题,当年还写了一个插件backbone.Composite来解决
- 相对而言,可维护性和可扩展性极差。虽然Angular库体积本身比Backbone大,但是如果你构建的是一个比较大型的App,最终你用Angular写的代码会比Backbone要少很多,而且不是一两倍的问题。
- ...
好了,虽然这样说,Backbone还是有优点的,例如体积比较小,学习成本低。所谓的缺点,其实这也是本身Backbone的哲学所决定了它一些实现。
用Angular,它包含很多复杂的概念,也许不懂它为什么要加这么多乱七八糟的东西,但是慢慢地你就会了解一切都是有它存在的原因的。如果你在没有用Angular之前,构建过大型的SPA,并且经过蛋疼的几次大重构以后,就会发现Angular所有的东西filter,service,BDD Test等等的存在都是合理的。有一句话不知道听过没有,大概是这样的:一个程序员不学数据结构与算法,那么他编程一辈子的经验就可以写成一本“数据结构与算法”。Angular的情况也大概一样,它是一群人很多年蛋疼的经验所总结出来的东西,我们就不要走弯路了。
但是,Angular很多时候是小题大作,为了让新手们能够不犯低级错误,它做了很多限制。对于前端框架,我认为其实没有必要做这么复杂。一个data-binding的库,加一个事件处理库,加一个动画库,加以一些模块化技巧,就可以松松实现Angular主张的一些东西,搞定各种SPA。
一句话总结:如果你看重学习成本,选Backbone;如果你看重以后的可维护性,用什么都好,不要用Backbone,至于移动端问题相信楼上几位大大已经给出答案。
移动网站用backbone还是angular?的更多相关文章
- 转:Backbone与Angular的比较
原文来自于:http://www.infoq.com/cn/articles/backbone-vs-angular 将不同的思想和工具进行对比,是一种更好地理解它们的方式.在本文中,我首先将列举在创 ...
- 比較Backbone.js, Angular.js, Ember.js, Knockout.js 心得
還記得第一次寫網站的時候,我無意間寫成了 SPA(single page application),當時還沒有SPA這個詞,後來因為廣告主需要不同 url location 頁面的廣告展示,只好把部分 ...
- Angular JS + Express JS入门搭建网站
3月份开始,接到了新的任务,跟UI开发有关,用的是Angular JS,Express JS等技术.于是周末顺便学习下新技术. 组里产品UI架构如下: 其中前端,主要使用Angular JS框架,另外 ...
- 浅谈HTML5单页面架构(二)——backbone + requirejs + zepto + underscore
本文转载自:http://www.cnblogs.com/kenkofox/p/4648472.html 上一篇<浅谈HTML5单页面架构(一)--requirejs + angular + a ...
- H5单页面架构:backbone + requirejs + zepto + underscore
首先,来看看整个项目结构. 跟上一篇angular类似,libs里多了underscore和zepto.三个根目录文件: index.html:唯一的html main.js:requirejs的配置 ...
- 移动端网站如何开发(电脑端网站到手机端网站我们需要在html代码中添加哪个meta标签)
移动端网站如何开发(电脑端网站到手机端网站我们需要在html代码中添加哪个meta标签) 一.总结 一句话总结: 添加viewport标签:meta name="viewport" ...
- angular开发者吐槽react+redux的复杂:“一个demo证明你的开发效率低下”
曾经看到一篇文章,写的是jquery开发者吐槽angular的复杂.作为一个angular开发者,我来吐槽一下react+redux的复杂. 例子 为了让大家看得舒服,我用最简单的一个demo来展示r ...
- Backbone.js学习之Backbone.View(视图)
Backbone.js为复杂WEB应用程序提供模型(models).集合(collections).视图(views)的结构.其中模型用于绑定键值数据和自定义事件:集合附有可枚举函数的丰富API: 视 ...
- Angular 1与 Angular 2之间的一些差别
现在在用ng1.5.8做一个项目,ng的优点和特性我就不用多说了,ng1在陆续更新到1.5/1.6后就没再推出新版本了,ng2已经面世测试很久了,如同很多系统和框架一样,每个大的版本更新都会有新特性加 ...
随机推荐
- SurfaceView浅析
什么是SurfaceView呢? 为什么是SurfaceView呢?Surface的意思是表层,表面的意思,那么SurfaceView就是指一个在表层的View对象.为什么 说是在表层呢,这是因为它有 ...
- 色彩转换——RGB & HSV
RGB to HSV The R,G,B values are divided by 255 to change the range from 0..255 to 0..1: R' = R/255 G ...
- HBase rest
HBase Rest 是建立在HBase java 客户端基础之上的,提供的web 服务.它存在的目的是给开发者一个更多的选择. 1.启动rest 服务 (1)hbase rest start 用默认 ...
- iOS中动态计算不同颜色、字体的文字高度
在改项目bug的时候,有一个问题动态计算label的高度,前开发者竟然用字符串长度除以14.16这样的常量来计算是否换行,结果cell的高度问题非常严重. 因为label内容里有部分关键字是要另一种颜 ...
- javascript中通过元素id和name直接取得元素
我们知道一些第三方的js库对如何快速选取html中的元素做了一些简化,貌似十分高深莫测,其实也不然.而且js本身自带了对于特殊元素的简便选取的方法,下面就为大家简单介绍下. 在html中,一般最直接的 ...
- masm的一些常用编译选项
ml命令行选项: /Dsymbol[=value] 定义给定名称的文本宏 /Fl 生成lst文件 /Sn lst文件中关闭符号表 /I 设置include文件的路径 /link 发送给link的连接器 ...
- 一个CSS背景颜色问题
div{ background: rgba(0,0,0,.1); background-color: #19FFFFFF; } 安卓下会显示上面的透明颜色,而在iOS上则显示下面的颜色,并且其 ...
- js获取Session的值
纯htm页面必须采用AJAX了, ASP页面:var manager='<%=session("manager")%>', ASPX页面:var manager='&l ...
- GitHub awesome Resource
各种Awesome技术资源的资源聚合: https://github.com/sindresorhus/awesome Contents Platforms Programming Languages ...
- flash 视频 死机(转贴)
http://zhidao.baidu.com/question/120464366 打开有关flash的网站就定屏死机 打开flash的网站经常定屏死机,打开酷狗,看土豆网遇到旁边那些广告也一样死机 ...