我试图从其网站http://documentcloud.github.com/backbone上了解backbone.js的实用功能,但我仍然搞不懂太多。

谁能帮我解释一下它是如何工作的,以及它如何有助于编写更好的JavaScript?


当前回答

js是一个帮助你组织代码的JavaScript框架。它实际上是构建应用程序的基础。它不提供小部件(如jQuery UI或Dojo)。

它为您提供了一组很酷的基类,您可以扩展这些基类来创建与服务器上RESTful端点接口的干净JavaScript代码。

其他回答

这是一个很好的入门视频: http://vimeo.com/22685608

如果你想了解更多关于Rails和Backbone的知识,Thoughtbot有这本非常好的书(不是免费的): https://workshops.thoughtbot.com/backbone-js-on-rails

这是一个有趣的演示:

Backbone.js的介绍

提示(来自幻灯片):

浏览器中的Rails ?不。 JavaScript的MVC框架?有几分。 一个巨大的状态机?是的!

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类,它可以让您处理模型的集合并模拟嵌套模型,但我不想从一开始就把您弄糊涂。

这是我在BackboneJS上写的一篇快速入门文章。希望能有所帮助! http://www.infragistics.com/community/blogs/nanil/archive/2013/04/01/exploring-javascript-mv-frameworks-part-1-hello-backbonejs.aspx

如果你打算在浏览器中构建复杂的用户界面,那么你可能会发现自己最终发明了构成框架的大部分部件,比如Backbone.js和Sammy.js。所以问题是,你是否在浏览器中构建了一些足够复杂的东西来值得使用它(这样你就不会自己发明同样的东西)。

If what you plan to build is something where the UI regularly changes how it displays but does not go to the server to get entire new pages then you probably need something like Backbone.js or Sammy.js. The cardinal example of something like that is Google's GMail. If you've ever used it you'll notice that it downloads one big chunk of HTML, CSS, and JavaScript when you first log in and then after that everything happens in the background. It can move between reading an email and processing the inbox and searching and back through all of them again without ever asking for a whole new page to be rendered.

It's that kind of app that these frameworks excel at making easier to develop. Without them you'll either end up glomming together a diverse set of individual libraries to get parts of the functionality (for example, jQuery BBQ for history management, Events.js for events, etc.) or you'll end up building everything yourself and having to maintain and test everything yourself as well. Contrast that with something like Backbone.js that has thousands of people watching it on Github, hundreds of forks where people may be working on it, and hundreds of questions already asked and answered here on Stack Overflow.

但是,如果您计划构建的东西不够复杂,不值得花费与框架相关的学习曲线,那么这一切都不重要。如果你仍然在构建PHP、Java或其他网站,而后端服务器仍然在根据用户的请求进行构建网页的所有繁重工作,而JavaScript/jQuery只是在这个过程中锦上添花,那么你将不需要或还没有准备好使用Backbone.js。