我试图从其网站http://documentcloud.github.com/backbone上了解backbone.js的实用功能,但我仍然搞不懂太多。
谁能帮我解释一下它是如何工作的,以及它如何有助于编写更好的JavaScript?
我试图从其网站http://documentcloud.github.com/backbone上了解backbone.js的实用功能,但我仍然搞不懂太多。
谁能帮我解释一下它是如何工作的,以及它如何有助于编写更好的JavaScript?
当前回答
js基本上是一个超轻的框架,它允许你以MVC(模型,视图,控制器)的方式构建你的Javascript代码。
模型是检索和填充数据的代码的一部分,
视图是这个模型的HTML表示(视图随着模型的改变而改变,等等)。
和可选的控制器,在这种情况下,它允许您通过hashbang URL保存Javascript应用程序的状态,例如:http://twitter.com/#search?q=backbone.js
我发现了Backbone的一些优点:
不再有Javascript面条:代码被组织并分解成语义上有意义的.js文件,然后使用JAMMIT进行组合 不再使用jQuery。data(bla, bla):不需要在DOM中存储数据,而是将数据存储在模型中 事件绑定可以正常工作 非常有用的下划线实用程序库 js的代码有很好的文档,值得一读。让我看到了很多JS代码技术。
缺点:
我花了一段时间来思考如何将它应用到我的代码中,但我是一个Javascript新手。
下面是一组关于使用Backbone和Rails作为后端的很棒的教程:
CloudEdit:一个Backbone.js教程与Rails:
http://www.jamesyu.org/2011/01/27/cloudedit-a-backbone-js-tutorial-by-example/
http://www.jamesyu.org/2011/02/09/backbone.js-tutorial-with-rails-part-2/
附注:还有一个很棒的Collection类,它可以让您处理模型的集合并模拟嵌套模型,但我不想从一开始就把您弄糊涂。
其他回答
这是一个有趣的演示:
Backbone.js的介绍
提示(来自幻灯片):
浏览器中的Rails ?不。 JavaScript的MVC框架?有几分。 一个巨大的状态机?是的!
它还添加了使用KVO控制器和视图的路由。您将能够使用它开发“AJAXy”应用程序。
可以把它看作是一个轻量级的Sproutcore或Cappuccino框架。
这是一个很好的入门视频: http://vimeo.com/22685608
如果你想了解更多关于Rails和Backbone的知识,Thoughtbot有这本非常好的书(不是免费的): https://workshops.thoughtbot.com/backbone-js-on-rails
这是我在BackboneJS上写的一篇快速入门文章。希望能有所帮助! http://www.infragistics.com/community/blogs/nanil/archive/2013/04/01/exploring-javascript-mv-frameworks-part-1-hello-backbonejs.aspx
I have to admit that all the "advantages" of MVC have never made my work easier, faster, or better. It just makes the whole codeing experience more abstract and time consuming. Maintenance is a nightmare when trying to debug someone elses conception of what separation means. Don't know how many of you people have ever tried to update a FLEX site that used Cairngorm as the MVC model but what should take 30 seconds to update can often take over 2 hours (hunting/tracing/debugging just to find a single event). MVC was and still is, for me, an "advantage" that you can stuff.