您对backbone.js项目的最佳做法是什么?

时间:2011-04-04 07:25:11

标签: backbone.js recipe

虽然我已经关注了backbone.js几个月并且经历了大量的教程,但我仍然对骨干(或我的技能)不太自信,无法在更大的项目中使用它。

我的经验是backbone.js教程的质量差异很大,有些是非常过时的(特别是来自骨干文档的示例待办事项应用程序)。

所以我想知道你的backbone.js最佳做法/食谱?你如何处理嵌套的集合/视图? JSON序列化?模型之间更复杂的查询?

4 个答案:

答案 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的应用程序时,您可以处理许多事情。例如:

  1. 自定义插件和mixins
  2. 嵌套视图/子视图
  3. 部分视图更新
  4. 模板管理 - 在前端和后端进行存储,预编译
  5. 序列化模型
  6. 关系数据模型
  7. 使用事件调度程序
  8. Subrouting
  9. 大规模应用程序架构等。
  10. 对于开发基于Backbone.js的单页应用程序,还有很多其他概念。您可以尝试我的书 Backbone.js Patterns and Best Practices ,其中详细讨论了所有这些要点。