骨干的目的是什么.js?

2022-08-29 23:15:47

我试图从其站点 http://documentcloud.github.com/backbone 了解骨干.js的效用,但我仍然无法弄清楚。

任何人都可以通过解释它是如何工作的来帮助我,以及它如何帮助编写更好的JavaScript?


答案 1

Backbone.js基本上是一个超轻量级框架,允许您以MVC(模型,视图,控制器)方式构建Javascript代码,其中...

模型是检索和填充数据的代码的一部分,

视图是此模型的 HTML 表示形式(视图随模型更改而变化,等等)

和可选的控制器,在这种情况下,它允许您通过hashbang URL保存Javascript应用程序的状态,例如:http://twitter.com/#search?q=backbone.js

我在Backbone中发现的一些优点:

  • 不再需要Javascript意大利面条:代码被组织并分解成语义上有意义的.js文件,然后使用JAMMIT进行组合

  • 无需更多:无需在DOM中存储数据,而是将数据存储在模型中jQuery.data(bla, bla)

  • 事件绑定工作正常

  • 非常有用的下划线实用程序库

  • backbone.js代码有很好的文档记录,读起来很棒。让我看到了许多JS代码技术。

缺点:

  • 我花了一段时间来解决这个问题,并弄清楚如何将其应用于我的代码,但我是一个Javascript新手。

以下是一组关于使用Bone with Rails作为后端的精彩教程:

CloudEdit: A Backbone.js Tutorial with 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/

p.s. 还有一个很棒的 Collection 类,可以让你处理模型集合和模仿嵌套模型,但我不想从一开始就让你感到困惑。


答案 2

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

如果您计划构建的内容是UI定期更改其显示方式,但不转到服务器以获取全新的页面,那么您可能需要像Backbone.js或Sammy.js之类的东西。类似事情的主要例子是谷歌的GMail。如果你曾经使用过它,你会注意到当你第一次登录时,它会下载一大块HTML,CSS和JavaScript,然后一切都在后台发生。它可以在阅读电子邮件和处理收件箱之间移动,然后再次搜索并返回所有电子邮件,而无需要求呈现全新的页面。

正是这些框架擅长使开发更容易的应用程序。没有它们,你最终会把一组不同的独立库组合在一起,以获得部分功能(例如,用于历史管理的jQuery BBQ,事件.js事件等),或者你最终将自己构建所有内容,并且还必须自己维护和测试所有内容。相比之下,像Backbone这样的东西.js有成千上万的人在Github上观看它,数百个分叉,人们可能正在研究它,以及Stack Overflow上已经提出和回答的数百个问题。

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