我试图从其网站http://documentcloud.github.com/backbone上了解backbone.js的实用功能,但我仍然搞不懂太多。
谁能帮我解释一下它是如何工作的,以及它如何有助于编写更好的JavaScript?
我试图从其网站http://documentcloud.github.com/backbone上了解backbone.js的实用功能,但我仍然搞不懂太多。
谁能帮我解释一下它是如何工作的,以及它如何有助于编写更好的JavaScript?
当前回答
Backbone由Jeremy Ashkenas创建,他还编写了CoffeeScript。作为一个javascript较多的应用程序,我们现在所知道的Backbone负责将应用程序构建成一个一致的代码库。backbone的唯一依赖项Underscore.js也是DocumentCloud应用的一部分。
Backbone帮助开发人员在客户端web应用程序中管理数据模型,与传统服务器端应用程序逻辑中的规则和结构一样多。
使用Backbone.js的其他好处
将Backbone视为一个库,而不是一个框架 Javascript现在以一种结构化的方式组织起来,即(MVVM)模型 庞大的用户群体
其他回答
js是一个帮助你组织代码的JavaScript框架。它实际上是构建应用程序的基础。它不提供小部件(如jQuery UI或Dojo)。
它为您提供了一组很酷的基类,您可以扩展这些基类来创建与服务器上RESTful端点接口的干净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是带有JavaScript的模型-视图-控制器(MVC) 但Extjs(归档)比骨干MVC模式的java脚本
有了骨气,你几乎可以自由地做任何你想做的事。而不是尝试通过api和自定义,我将使用Backbonejs,因为它的简单性和易于实现。同样,很难说你需要从这两者中得到什么,一个是库,另一个是组件
如果你打算在浏览器中构建复杂的用户界面,那么你可能会发现自己最终发明了构成框架的大部分部件,比如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。
涉及大量用户交互和许多AJAX请求的web应用程序,需要不时更改,并实时运行(如Facebook或StackOverflow)应该使用MVC框架,如Backbone.js。这是构建好代码的最好方法。
如果应用程序很小,那么Backbone.js就太过分了,尤其是对第一次使用它的用户。
Backbone为您提供了客户端MVC,以及由此隐含的所有优势。