听了 Teahour.fm 第一期后,就想了解一下 javascript 的 mvc spine,然后看了下面这个 demo https://github.com/maccman/spine.contacts 我发现 javascript 竟然可以存数据了?是不是用的是 nodejs?看不懂是什么回事。 操作起来又是不需要刷新的,很像 pjax,似乎又不是 pjax。 是怎么使用的?服务器端产生数据,用 json 传输,然后全部用 javascript 做处理的吗?
javascript 的 mvc 书籍好少,请问有没有什么推荐看的呢?
@QueXuQ 存数据和使用 nodejs 有何关系?这个例子里数据的存储应该是通过 HTML5 Local Storage 完成的,详见:http://spinejs.com/docs/local
完成这个例子用到的依赖包是用 npm 和 hum 管理的,不过涉及 spine 的源码都是纯纯的 javascript (coffeescript)
Javascript MVC 好像就是把后端的事情,搞到前端这边来了。例如可以用 javascript MVC 提供的模版语言来做模版。而不是 erb 或者 haml 这种。看起来像是这样。
@QueXuQ 大部分 demo 都是用 local storage,也有少数像 Angular 哪样标榜 everything is model 的 demo 就是用的内存中的数组啊之类的。 正式的项目一般都是服务端提供 RESTful API 传递 json 数据。怎么跟 model 映射起来就看各个框架怎么实现了。 轻量级还是学 Backbone 吧,用的人多找资料也方便些,Spine 项目活跃度越来越小了。
#3 楼 @metal js 的 mvc 跟后端的 mvc 没关系的(或者说 js 的 mvc 只是后端 mvc 中的 view 里再 mvc)。 前端的 mvc 是为了解决复杂前端情况下模块化 js 的问题。 最典型的应用,单一页面的 js 应用。比如:豆瓣说(js mvc 框架为 backbone)。
至于 backbone、spine 都有 simpletodo 的示例。为了简化,都用的 html5 的 local storage,实际使用中完全可以跟其它后框架一起使用。 我去年做过一个项目是 backbone + thinkphp。backbone 的 mvc 跟 thinkphp 的 mvc 各司其职。
大前端是趋势,Javascript MVC 会越来越火,rails 程序员果断选emberjs,CoC 和 RESTful 又一次在 JS 中发挥的淋漓尽致。Controller, Model, View, Partial, Helper, Router...这些在 rails 里的元素一个也不少,而且项目是由 yehuda katz 发起的,靠谱。另外如果爱 Java 爱钻研,推荐YUI。 书的话就这本喽<基于 MVC 的 JavaScript Web 富应用开发>
@QueXuQ 要学的话就 Angular 或者 Ember 吧。我觉得现在没有数据绑定的框架都不能算好框架。每个框架自己试试,心里就有谱了。自己建个不算复杂的项目实际用用,别看 demo。有些问题到一定的复杂程度才能看出来,demo 都太阳春白雪了……
Angular 绝对是所有框架中最特立独行的一个,也最易上手的。看看官网估计十个人有八个会喜欢。给我的感觉就是理念非常先进,也许真的算是未来的趋势。
Ember 整体架构挺不错,也许作者太想把东西做完美了,考虑了很多东西,有的确实是别的框架没想到的(Ember Guide 里有关于 View 设计的理念非常值得一读)。属于那种上手比较麻烦,但熟悉后绝对会觉得值的框架。