尽管我已经关注了backbone.js 几个月并且完成了大量的教程,但我仍然没有足够的信心对backbone(或我的相关技能)在更大的项目中使用它。
我的经验是,backbone.js 教程的质量差异很大,有些已经过时了(尤其是来自主干文档的示例 todo 应用程序)。
所以我想知道你的backbone.js 最佳实践/食谱?你如何处理嵌套的集合/视图?JSON序列化?模型之间更复杂的查询?
尽管我已经关注了backbone.js 几个月并且完成了大量的教程,但我仍然没有足够的信心对backbone(或我的相关技能)在更大的项目中使用它。
我的经验是,backbone.js 教程的质量差异很大,有些已经过时了(尤其是来自主干文档的示例 todo 应用程序)。
所以我想知道你的backbone.js 最佳实践/食谱?你如何处理嵌套的集合/视图?JSON序列化?模型之间更复杂的查询?
以下是您似乎提出的问题列表:
骨干.js 最佳实践/食谱
我的第一个实践/食谱是深入研究骨干.js 代码并阅读它,甚至使用 js 调试器逐步完成它。该代码有很好的文档记录,是现代 JS 代码应该是什么的一个很好的例子。
你如何处理嵌套的集合/视图?
Afaik 没有“简单的方法”来处理嵌套集合和处理子集合中发生的事件。你必须实现它。不过,我还没有处理集合的集合,所以也许你可以通过重组你的“数据模型”来避免它。具有模型集合的模型本身可以满足嵌套模型的大部分要求。
就视图而言,您基本上可以控制它们的呈现方式。主干提供的视图只不过是一种将相应模型更改为渲染代码的机制。您实现渲染。因此,如果您想要嵌套视图,您可以使用支持局部视图的模板引擎(如果我正确理解嵌套视图的含义)。
JSON 序列化
你的问题是什么?主干文档说“强烈建议包含 json2.js”
模型之间更复杂的查询?
再说一次,你的问题是什么?Backbone 为您提供结构来做自己的事情,您必须自己实现复杂性
模型之间的关系
同样,您正在实现模型。您的模型可以包含其他模型。你对他们做什么以及如何互动取决于你自己。根据我的经验,没有必要在 javascript 中复制后端数据模型。您的前端模型很可能比后端模型更简单。
模型继承
通过使用backbone.js,您已经在使用模型继承。这就是您编写var MyModel = Backbone.Model.extend...时发生的情况。
很抱歉没有详细说明,但正如托马斯戴维斯所说,这些问题非常模糊。对于描述您遇到的特定问题的更详细的问题,您将获得更详细的答案。
由于这个问题的答案可能太长,因为它具有一般范围,我将把这些链接留在这里。我希望他们能帮助其他发现这个问题的人,因为他们帮助我更好地理解了这个框架并拥有更好的应用程序,有效地使用内存,更好地组织文件以及更易读和可维护的代码:
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
我希望我从一开始就有这个。
干杯!
我认为这些问题有点模糊,无法在一个简单的帖子中回答。
我即将在 Backbone.js 中完成一个完整的 Web 应用程序,并且还想讨论这些最佳实践,以便我可以在发布之前快速修改一些选择。
我目前正在backbonetutorials.com 上尝试最终将这些更难的问题组合在一起。
保存收藏的解决方案可能是第一个问题,但如果有一些社区参与会很棒。
在开发基于 Backbone.js 的应用程序时,您可以处理许多事情。例如:
还有更多概念对于开发基于 Backbone.js 的单页应用程序至关重要。你可以试试我的书Backbone.js Patterns and Best Practices,它详细讨论了所有这些要点。