虽然我已经关注了backbone.js几个月并且经历了大量的教程,但我仍然对骨干(或我的技能)不太自信,无法在更大的项目中使用它。
我的经验是backbone.js教程的质量差异很大,有些是非常过时的(特别是来自骨干文档的示例待办事项应用程序)。
所以我想知道你的backbone.js最佳做法/食谱?你如何处理嵌套的集合/视图? JSON序列化?模型之间更复杂的查询?
答案 0 :(得分:27)
以下列出了您似乎提出的问题:
backbone.js最佳做法/食谱
我的第一个练习/配方是潜入backbone.js code并阅读它,甚至用js调试器逐步完成它。代码记录良好,是现代JS代码应该是一个很好的例子。
如何处理嵌套的集合/视图?
Afaik没有“简单的方法”来处理嵌套集合和处理子集合中发生的事件。你必须实现它。虽然我还没有处理过收藏品,所以也许你可以通过重组你的“数据模型”来避免它。具有模型集合的模型本身满足嵌套模型的大部分要求。
就观点而言,你基本上可以控制它们的渲染方式。骨干网提供的视图只不过是将相应模型更改为渲染代码的机制。您实现渲染。因此,如果您想要嵌套视图,可以使用支持partials的模板引擎(如果我正确理解嵌套视图的含义)。
JSON序列化
你有什么问题?骨干文档说“强烈建议包含json2.js”
模型之间更复杂的查询?
再说一次,你的问题是什么? Backbone为您提供自己做事的结构,您必须自己实现复杂性
模型之间的关系
同样,您正在实施模型。您的模型可以包含其他模型。你用他们做什么以及你如何互动取决于你。根据我的经验,没有必要在javascript中复制后端数据模型。您的前端型号很可能比后端型号更简单。
模型继承
通过使用backbone.js,您已经在使用模型继承。当您编写 var MyModel = Backbone.Model.extend ...
很抱歉没有详细说明,但像托马斯戴维斯说的那样,问题非常模糊。您将在更详细的问题上获得更详细的答案,描述您遇到的具体问题。
答案 1 :(得分:7)
由于这个问题的答案可能太长,因为它有一般的范围,我会在这里留下这些链接。我希望他们能帮助其他找到这个问题的人,因为他们帮助我更好地理解这个框架并拥有更好的应用程序,有效地使用内存,更好的文件组织以及更易读和可维护的代码:
http://ricostacruz.com/backbone-patterns/
http://kilon.org/blog/2012/11/3-tips-for-writing-better-backbone-views/
http://blog.involver.com/2012/01/26/testing-backbone-js-best-practices-2/
http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-page-transitions-in-backbone-apps/(过时的解决方案,但阅读和理解非常重要!!)
https://github.com/thomasdao/Backbone-View-Manager
我希望我从一开始就拥有这个。
干杯!
答案 2 :(得分:2)
我认为在一个简单的帖子中回答这些问题有点模糊。
我即将完成在Backbone.js中完成的完整网络应用程序,并且还想讨论这些最佳实践,以便我可以在发布之前快速修改一些选择。
我正在backbonetutorials.com上工作,最终尝试将这些更难的问题归为一类。
保存馆藏的解决方案可能是第一个问题,但如果有一些社区参与则会很棒。
答案 3 :(得分:0)
在开发基于Backbone.js的应用程序时,您可以处理许多事情。例如:
对于开发基于Backbone.js的单页应用程序,还有很多其他概念。您可以尝试我的书 Backbone.js Patterns and Best Practices ,其中详细讨论了所有这些要点。