新手问题 关于 Javascript 的 MVC 的疑问

QueXuQ · March 21, 2013 · Last by krazy replied at March 28, 2013 · 4016 hits

听了 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)

#1 楼 @nightire 哦。原来是 HTML5 Local Storage,因为本来 js 不能保存数据,我看里面又都是 js,就以为涉及了 nodejs。 前端好像越来越复杂,得仔细研究才行。谢谢。

Javascript MVC 好像就是把后端的事情,搞到前端这边来了。例如可以用 javascript MVC 提供的模版语言来做模版。而不是 erb 或者 haml 这种。看起来像是这样。

推荐 Angular JS

#4 楼 @winnie 我也看过这个,多个 ui,还没有去了解。 #3 楼 @metal 我好奇 javascript 是怎么掉用数据库的?应该是从 ruby 发送 json 过去用的吧。

#4 楼 @winnie 看了下,还是觉得复杂。主要是不喜欢 js 的写法,也不太习惯。

不知道有没有简单易学的,感觉这个还是趋势,所谓的单页 app。

#5 楼 @QueXuQ 应该是的。Javascript 和 rails 对话,rails 和后端数据库对话。Javascript 和数据库直接通话,会有安全问题。

@QueXuQ 大部分 demo 都是用 local storage,也有少数像 Angular 哪样标榜 everything is model 的 demo 就是用的内存中的数组啊之类的。 正式的项目一般都是服务端提供 RESTful API 传递 json 数据。怎么跟 model 映射起来就看各个框架怎么实现了。 轻量级还是学 Backbone 吧,用的人多找资料也方便些,Spine 项目活跃度越来越小了。

#8 楼 @darkbaby123 Backbone or AngularJS?

#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 设计的理念非常值得一读)。属于那种上手比较麻烦,但熟悉后绝对会觉得值的框架。

学 Angular 看这里: http://egghead.io/

#11 楼 @camel Thank you.<基于 MVC 的 JavaScript Web 富应用开发>看了,就是可惜没有介绍 Angular 和 Ember,所以不了解这两个情况,然后打算用 backbone。听你这样说,到是想入手试试 ember。 #12 楼 @darkbaby123 是的,我就是看了 Angular 后觉得很酷,目前还没有了解 ember。有机会试一试。 #13 楼 @knwang Thanks。

#13 楼 @knwang angluar 的印象还可以,这个视频还可以。官网上那个太模糊了。

感觉 backbone 像个黑盒,但又不如 angular 黑的那么彻底,代码又不像 spine 那么清晰。 angular 就是给 html 吃补药啊

You need to Sign in before reply, if you don't have an account, please Sign up first.