Backbone.js平均堆栈等效

Backbone.js MEAN Stack equivalent

本文关键字:堆栈 js Backbone      更新时间:2023-09-26

我知道有几个项目,比如mean.io或meanjs,甚至是yeoman生成器,当你要在mean堆栈下开发时,所有必要的样板文件都是为你完成的。

事实上,MEAN堆栈已经与Angular.js紧密结合,没有任何项目与Backbone.js做同样的事情,我对此感到非常惊讶,我相信这是一个非常常见的堆栈——Mongodb、Express、Backbone和Require.js或Marionette.js等朋友的组合。

我一直在探索这一点,试图混合骨干和表达自由放任的生成器,从其他人的项目中构建骨干,但我仍然认为必须有更好的方法来做到这一点。

我很感激你们分享你们的经验,找出我在这里缺少的东西。

所以问题是:从零开始启动全栈"MEBN"(Mongodb、Express和Backbone)项目时,您使用哪些常见做法和技巧?

感谢大家!!

它不是MEBN吗?:D

您可以查看Backbone Boilerplate(BBB):https://github.com/backbone-boilerplate/backbone-boilerplate

它使用node为本地应用程序提供服务,因此您有了一个开始。;)

基本上,你也可以获取一个MEAN示例,去掉Angular并混合Backbone。服务器(Nodejs)部分将是相同的(控制器、RESTneneneba API、用于数据交换的JSON格式),但你将使用Backbone Models和Collections与API和ViewsforUI交互。

您可以使用此MEBN

我认为Angular比Backbone更好,我个人使用mean.io,但是。。。

优点

Backbone可以与许多第三方模板引擎集成,默认选择是Undercore模板。由于Undercore是一个主干依赖项,并且您的页面上已经有了它,因此您可以轻松利用它的模板引擎,而无需为应用程序添加任何其他依赖项。不利的一面是,Undercore的模板引擎非常基础,您通常必须将javascript放入混合中,如您在我们的示例中所见:

Backbone重量轻,速度快,内存占用小。学习曲线是非常线性的,只有几个简单的概念需要掌握(模型/集合、视图、路线)。它有很好的文档,代码简单且文档丰富,甚至还有一个注释版本的代码,详细解释了它的工作原理。实际上,您可以在不到一个小时的时间内浏览整个框架的源代码并熟悉它。

Backbone是如此的小和基础,可以成为构建自己框架的良好基础。基于Backbone的第三方框架的一些例子有Aura、Backbone UI、Chaplin、Geppetto、Marionette、LayoutManager、Thorax、Vertebrae。对于Angular和Ember,您通常必须接受框架作者所做的选择,这些选择可能适合也可能不适合您的项目需求和个人风格。Angular 2.0承诺通过包含小型独立模块来改变它,因此您将能够进行选择和混合。我们还没有看到他们是否能够做到这一点。

痛点

主干不提供结构。相反,它提供了一些可以用来创建结构的基本工具,让开发人员决定如何构建应用程序,还有很多空白需要填补。诸如内存管理之类的事情必须仔细考虑。视图生命周期管理的缺乏使得路由/状态更改很容易发生内存泄漏,除非您自己清理所有内容。

虽然Backbone本身没有提供的许多功能确实可以由第三方插件来填充,但这也意味着在创建应用程序时需要做出许多选择,因为许多功能都有几个替代插件。例如,嵌套模型可以由Backbone.DocumentModel、Backbone.NestedTypes、Backbone.Schema、Backbone nested、主干nestify等提供。决定哪一个最适合你的项目需要研究,这反过来又需要时间——而框架的主要目的之一是为你节省时间。

Backbone缺乏对双向数据绑定的支持,这意味着您将不得不编写大量样板文件,以便在模型更改时更新视图,并在视图更改时更新模型。请参阅上面给出的示例,显示Angular.js中的双向数据绑定如何减少样板文件。

Backbone中的视图直接操作DOM,使得它们很难进行单元测试,更脆弱,可重用性更低。常见的做法是使用CSS选择器查找DOM元素,因此更改CSS类名、添加具有相同类名的新元素,甚至将一些DOM树封装在另一个元素中,都会破坏CSS选择器,使应用程序可用。