最近发现一个轻量级js的mvc框架——backbone.js 官网链接戳我 他的特点是: 轻量级,支持jquery,自带路由,对象化视图,强大的sync机制减少页面大小从而加快页面显示。 但是用过后发现一些不好的地方: 它可以template去绑定视图的内容,虽然是方便编辑了,但是却要把切片改成一个个template是一件很蛋疼的事,假如一个sina门户的话就哭了。 用hash来做路由,如果是php开发的话,感觉就像是phper在跟着前端做项目的赶脚。
总之个人的感觉是:很牛逼,搭上node话很不错,是一种不错的趋势。但是商业开发的话,就祈祷老板不要变来变去。 以上是个人拙见, 希望有了解过backbone的童鞋一起来探讨下。
轻量级优点不敢苟同啊。。。我记得之前看过的backbone的介绍,说其实这是个比较重量级的框架。我之前实习的公司的一个产品使用backbone+requirejs做前端。感觉很不错。然后我们架构师说的最多的一句话就是:要养成面向模型编程的思想。。
真正业务复杂的项目还是最好不用这种框架性质的。框架再NB都有一套自己的规矩,就像你要做一辆车,但是他只能给你那种规格的轮子。业务复杂性的项目用工具不要用框架,特别是几个框架混用的时候带来的麻烦可真多。
我是在做移动开发,感觉不错。但是觉得backbone也适用与桌面web开发。现在的客户端存储技术越来越多了,localstorage,cookie,Indexed Database.manifest,所以我觉得会有越来越多的逻辑层放到客户端去做,所以js mvc会越来越受欢迎,js的模块化是势在必行的、
这是永恒的话题啊。我目前采取的办法是用一个全局对象来做命名空间,去减少耦合性。不知道你自爱解耦上还有什么别的办法。小弟的工作组要是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实现框架。