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

QueXuQ · 2013年03月21日 · 最后由 krazy 回复于 2013年03月28日 · 4016 次阅读

听了 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 吃补药啊

需要 登录 后方可回复, 如果你还没有账号请 注册新账号