最近发现一个轻量级js的mvc框架——backbone.js 官网链接戳我 他的特点是: 轻量级,支持jquery,自带路由,对象化视图,强大的sync机制减少页面大小从而加快页面显示。 但是用过后发现一些不好的地方: 它可以template去绑定视图的内容,虽然是方便编辑了,但是却要把切片改成一个个template是一件很蛋疼的事,假如一个sina门户的话就哭了。 用hash来做路由,如果是php开发的话,感觉就像是phper在跟着前端做项目的赶脚。
总之个人的感觉是:很牛逼,搭上node话很不错,是一种不错的趋势。但是商业开发的话,就祈祷老板不要变来变去。 以上是个人拙见, 希望有了解过backbone的童鞋一起来探讨下。
如果你做移动端html开发的话,backbone是个不错的选择。另外现在的页面都趋于简单化和模块化,用backbone 还是很不错的,我现在就用backbone+bootstrap作前端UI.
轻量级优点不敢苟同啊。。。我记得之前看过的backbone的介绍,说其实这是个比较重量级的框架。我之前实习的公司的一个产品使用backbone+requirejs做前端。感觉很不错。然后我们架构师说的最多的一句话就是:要养成面向模型编程的思想。。
真正业务复杂的项目还是最好不用这种框架性质的。框架再NB都有一套自己的规矩,就像你要做一辆车,但是他只能给你那种规格的轮子。业务复杂性的项目用工具不要用框架,特别是几个框架混用的时候带来的麻烦可真多。
主要是数据解耦 碎片化
我是在做移动开发,感觉不错。但是觉得backbone也适用与桌面web开发。现在的客户端存储技术越来越多了,localstorage,cookie,Indexed Database.manifest,所以我觉得会有越来越多的逻辑层放到客户端去做,所以js mvc会越来越受欢迎,js的模块化是势在必行的、
我是指他的代码小压缩后不到7K,既然用mvc就不会只是给一个页面加个交互功能什么的。他已经上升到框架了。但是在框架来说它是轻量级的了,不知道我的观点对不。
我感觉像是重量级的。。
可以试试angularjs
是的,有业务去决定该采用什么框架,是否是多种框架混搭。同意你的观点
我也是,记得当初学php的zend framework时花了好大的劲取适应
这是永恒的话题啊。我目前采取的办法是用一个全局对象来做命名空间,去减少耦合性。不知道你自爱解耦上还有什么别的办法。小弟的工作组要是css切片,都是业余时间去学习js。所以很多东西都是知道不全面。我希望你和我谈谈你们在js解耦和碎片化的方法。谢谢
backbone入门成本有点高,如果之后招来的人不是geek犯的话 很容易给项目带来风险。
重复代码和其他框架重复的较多。
如果仅仅是想解耦,自己写点自定义事件就完了。。
不要跟风,web app优点教多,但是也不是必选,普通网站还是算了。。
@yjj676 backbone的每个model其实就是单独的一套数据定义格式。collections就是model的集合。view和route是方便你把数据和model或者collections连接在一起的。
搞明白了之后,其实backbone最大的好处就是让数据和视图业务分离开,而且可以通过框架自身规定好的事件,实现数据变更视图重新渲染,进而深度处理一些兼容问题,比如重复渲染的事件解绑,委派等。
如果js面向对象不太熟悉,用起来太吃力了。
js解耦和数据解耦不是一回事,命名空间的方法是5年前比较out的方法,现在都是用模块化开发来解耦大js文件。比如nodejs,seajs,requirejs,lithe.js等等。。cmd/amd实现框架。
underscore拿出来用用还不错。如果前端需要大量处理渲染数据的话。
AngularJS看着比Backbone简单。。。
我只能说Backbonejs是GUI Architect的真理,松散,简单,基于事件,扩展模块非常多。其他框架宣称的功能 AngularJS,emberjs也都各有优势,不过双向绑定,自动绑定这种看起来很美好的东西,并不是在所有类型的应用当中都适用。 你可以热爱真理,但是必须根据项目选择合适框架
有道理!谢谢!
@xiaojue 赶脚JS的模块化还是个渣渣,没Java好用;)
Backbone最好的是它的每个设计。但是要构建自己的应用,没有必要什么都盲从它。
@kingapple 前端要考虑网络请求,java当然优势很多。你自己写过模块管理器么。。
@xiaojue 亲,为何要自己造轮子呢
@JacksonTian 这货都有哪些好的设计呢:)
@kingapple 和造轮子没关系吧。我是说实现复杂程度,你关注错我说话的点了。。
我的感觉就是oo ui之类的框架,完全破坏了编程的本质: 模块、算法。
@leohxj 这俩货一个概念的? A是对html的增强,B也是么?
@tulayang 都是框架惹的祸?
@jiyinyiyong OO已经是过时的技术了