使用backbone框架做单页应用项目已经有一段时间了,总体来说,backbone对于有经验的前端开发来说,相对入门还是比较简单的。backbone对于单页应用这样复杂的项目,能够达到对代码很好的梳理,也能很好的实现模块间松耦合和事件驱动。
近期的一点点小经验和疑问大家分享下
1.backbone的架构很适合用于模块式开发,配合seajs来实现模块按需加载会很强大。
2.将需要写到页面的数据通过underscore的template方法调用模板呈现到页面。
3.Collection/Model 抽象了以前杂乱的 AJAX 请求,一个fetch方法就实现了和服务端的数据交互,看起来非常爽,然而我在项目中提供json数据的api是在不同域上的,不知道fetch方法如何解决跨域问题,目前我是暂时用jquery的ajax以jsonp的方式实现跨域,监听jsonp Collection/Model的add和remove事件实现监听数据变更,比较可惜,没有直接用fetch方法节省一些代码,不知道大家有什么解决办法。
4.backbone视乎并没有视图嵌套的概念,视图与视图之间的数据交互我是通过传递值的方式实现的。
5.目前项目进行中,遇到一个较大的疑问,既然是单页应用程序,必定有很多的功能模块,当我们切换到另一个功能模块时,原有的功能模块并不知道如何销毁