JavaScript中的复合应用程序架构是什么?

时间:2013-12-30 11:41:22

标签: javascript backbone.js marionette

来到Backbone Marionette,它说它提供了复合应用程序架构。

JavaScript中的复合应用程序架构是什么?以及它如何帮助构建更好的单页应用程序? (世界已经充满了JS范式中实现的许多设计原则)

AngularJS是否提供复合应用程序架构?为什么我需要在JavaScript中使用它?

2 个答案:

答案 0 :(得分:0)

我的理解(可能不正确!)是它与复合模式有关,它主要是关于树,节点和叶节点,并且能够使用它们而不知道你是否有叶节点或分支节点。

Marionette允许您非常轻松地编写由其他视图组成的视图,由模块组成的应用程序,并鼓励重用组件。

例如,假设我想在区域中显示视图。我可以通过调用myRegion.show(myView)轻松显示此视图。让我们说,稍后,我需要这个视图更复杂,我可以很容易地写一个Marionette.Layout,它显示了一堆子视图,只是交换它代替旧视图,一切正常。布局负责显示和关闭它的所有子视图,这对于vanilla Backbone来说是非常艰巨的。

使用Marionette获得的最大胜利之一是能够使用CompositeView轻松渲染树结构,而CompositeView受复合模式的影响。

作为关于如何帮助创建SPA的一般观点,它使得从模块,布局和视图组合应用程序变得非常容易,每个应用程序的职责都较少。将应用程序拆分为更小的组件时所经历的摩擦力很小,这使得开发,重构和测试变得更加容易。

我发现,如果我曾经想过将一个视图分成多个子视图可能是一个好主意,我应该这样做。 Marionette让这很容易,而且我从不后悔将某些东西分成较小的视图,但是当我选择不这样做并且通常最终最终完成它时,我后悔了。

很抱歉,复合应用程序架构并没有太多关于Marionette为什么好的原因。

答案 1 :(得分:0)

问:JavaScript中的复合应用程序架构是什么?

答:Marionette是复合材料,因为它由不同的库组成。木偶依赖骨干骨干依赖于其他图书馆。当你将所有这些库放在一起时,它们都以自己的方式提供帮助。 Backbone可以在没有牵线木偶的情况下使用,但是当两者一起使用时,您应该能够解决相同的问题但代码更少。

问:AngularJS是否提供复合应用程序架构?

答:我不这么认为......因为它不是由其他JS库组成或依赖于其他JS库。

问:为什么我需要在JavaScript中使用它?

答:也许你不需要它。肯定有其他库可以解决相同的问题。你甚至可以使用vanilla JavaScript并自己解决所有相同的问题。 Marionette是一个工具,它使JavaScript更易于使用。 jQuery使JavaScript也更易于使用,但解决了一个不同的问题(DOM操作)。 Backbone解决了如何在JS中构建应用程序的问题,Marionette减少了制作应用程序所需的冗余代码量。这完全取决于什么是适合这项工作的工具。