我试图从它的站点http://documentcloud.github.com/backbone理解belish.js的实用程序,但是我仍然不太清楚。
有人可以通过解释它的工作原理以及对编写更好的JavaScript有什么帮助来帮助我吗?
我试图从它的站点http://documentcloud.github.com/backbone理解belish.js的实用程序,但是我仍然不太清楚。
有人可以通过解释它的工作原理以及对编写更好的JavaScript有什么帮助来帮助我吗?
已经有很多好的答案。Backbone js有助于保持代码井井有条。更改模型/集合会照顾到视图呈现的自动性,从而减少了很多开发开销。
即使它为开发提供了最大的灵活性,开发人员也应小心破坏模型并正确删除视图。否则,应用程序中可能会发生内存泄漏。
骨干网由Jeremy Ashkenas创建,他还撰写了CoffeeScript。作为一个包含大量JavaScript的应用程序,我们现在称为Backbone负责将应用程序结构化为一个统一的代码库。Underscore.js是骨干唯一的依赖项,它也是DocumentCloud应用程序的一部分。
Backbone帮助开发人员在客户端Web应用程序中管理数据模型,具有与传统服务器端应用程序逻辑相同的规则和结构。
使用Backbone.js的其他好处
它还使用控制器和KVO视图添加路由。您将可以使用它开发“ AJAXy”应用程序。
将其视为轻量级的Sproutcore或Cappuccino框架。
相信我,这是客户端上的MVC设计模式。它将为您节省大量代码,更不用说更简洁明了的代码,更易于维护的代码了。一开始可能有些棘手,但请相信我,它是一个很棒的图书馆。
骨架.js是具有JavaScript的模型视图控制器(MVC), 但Extjs优于Java脚本编写的MVC模式的骨架
有了骨干,您就可以自由地做几乎想要的任何事情。与其尝试遍历api和自定义,不如使用Backbonejs,因为它简单易实现。再说一遍,很难说您需要的是一个库还是另一个组件
这是我在BackboneJS上撰写的快速入门文章。希望能帮助到你! http://www.infragistics.com/community/blogs/nanil/archive/2013/04/01/exploring-javascript-mv-frameworks-part-1-hello-backbonejs.aspx
Backbone.js是一个JavaScript框架,可帮助您组织代码。它实际上是构建应用程序的基础。它不提供小部件(如jQuery UI或Dojo)。
它为您提供了一组很酷的基类,您可以扩展这些基类来创建干净的JavaScript代码,这些代码与服务器上的RESTful端点进行接口。
我必须承认,MVC的所有“优势”从来没有使我的工作变得更轻松,更快或更好。它只是使整个编码体验更加抽象和耗时。当尝试调试别人对分离意味着什么的概念时,维护是一场噩梦。不知道你们中有多少人曾尝试更新使用Cairngorm作为MVC模型的FLEX站点,但是更新需要30秒才能完成,通常需要2个小时以上的时间(仅为了查找单个事件而进行的狩猎/跟踪/调试) )。对我来说,MVC过去是,现在仍然是可以填充的“优势”。
这是一个非常不错的入门视频:http : //vimeo.com/22685608
如果您正在寻找有关Rails和Backbone的更多信息,那么Thoughtbot有这本不错的书(不是免费的):https ://workshops.thoughtbot.com/backbone-js-on-rails
JQuery和Mootools只是一个包含大量项目工具的工具箱。骨干网就像项目的架构或骨干网一样,您可以使用JQuery或Mootools在其上构建应用程序。
如果要在浏览器中构建复杂的用户界面,那么您可能最终会发现自己发明了构成Backbone.js和Sammy.js之类的框架的大部分组件。所以问题是,您是否在浏览器中构建了足够复杂的东西,值得使用它(这样您就不会自己发明同样的东西)。
如果您打算构建的东西是UI会定期更改其显示方式但不去服务器获取整个新页面的东西,那么您可能需要Backbone.js或Sammy.js之类的东西。诸如此类的主要例子是Google的GMail。如果您曾经使用过它,您会发现它在您首次登录时下载了一大块HTML,CSS和JavaScript,然后在后台进行所有操作。它可以在阅读电子邮件和处理收件箱以及再次搜索并遍历所有收件箱之间切换,而无需请求呈现整个新页面。
这些框架擅长使这类应用易于开发。没有它们,您要么最终将各种单独的库组合在一起以获得部分功能(例如,用于历史管理的jQuery BBQ,用于事件的Events.js等),要么最终自己构建所有东西并且还必须自己维护和测试所有内容。与此形成鲜明对比的是,像Backbone.js之类的东西,在Github上有成千上万的人在看它,人们可能正在使用它的数百个fork,在Stack Overflow上已经有数百个问题已经问及回答了。
但是,如果您计划构建的内容不够复杂而不值得与框架相关的学习曲线,那么这一切都不重要。如果您仍在构建PHP,Java或其他网站,后端服务器仍在按照用户的要求来构建网页,而JavaScript / jQuery只是在该过程中锦上添花,那么您就不会不需要或尚未准备使用Backbone.js。
Backbone.js基本上是一个超轻型框架,可让您以MVC(模型,视图,控制器)的方式构造Javascript代码,其中...
模型是您的代码的一部分,该代码用于检索和填充数据,
View是此模型的HTML表示(视图随模型的变化而变化,等等)
以及可选的Controller(在这种情况下,该Controller允许您通过hashbang URL)保存Javascript应用程序的状态,例如:http : //twitter.com/#search? q=backbone.js
我在Backbone上发现的一些优点:
不再使用Javascript Spaghetti:将代码整理并分解为语义上有意义的.js文件,然后再使用JAMMIT进行组合
没有更多的jQuery.data(bla, bla)
:没有必要在DOM存储数据,在型号代替使用存储数据
事件绑定就可以了
极其有用的Underscore实用程序库
ribs.js代码有据可查,并且读物很好。使我对许多JS代码技术大开眼界。
缺点:
这是一组有关将Backbone与Rails用作后端的很棒的教程:
CloudEdit:带有Rails的Backbone.js教程:
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/
ps还有一个很棒的Collection类,可以让您处理模型的集合并模仿嵌套模型,但是我不想从一开始就使您感到困惑。
一个涉及许多用户与许多AJAX请求的交互的Web应用程序,该应用程序需要不时更改,并且要实时运行(例如Facebook或StackOverflow),应使用MVC框架(例如Backbone.js)。这是构建良好代码的最佳方法。
如果应用程序很小,那么Backbone.js会显得过大,特别是对于初次使用的用户。
骨干网为您提供了客户端MVC,以及由此带来的所有优势。