围绕着Backbone Marionette,它自称提供了复合应用架构。
JavaScript中的复合应用程序架构是什么?它如何帮助构建更好的单页面应用程序?(在JS范型中已经实现了很多设计原则)
AngularJS是否提供复合应用程序架构?为什么我在JavaScript中需要这个?
发布于 2014-01-22 07:04:31
我的理解(这可能不正确!)它与复合模式有关,它本质上是关于树、节点和叶节点的,并且能够使用它们,而不知道你是有一个叶节点还是一个分支节点。
Marionette允许您非常容易地编写由其他视图组成的视图,由模块组成的应用程序,并鼓励重用组件。
例如,假设我想在一个区域中显示一个视图。通过调用myRegion.show(myView),我可以轻松地显示此视图。假设稍后,我需要更复杂的视图,我可以很容易地编写一个显示一堆子视图的Marionette.Layout,只需将其替换为旧的视图,一切都会正常工作。布局负责显示和关闭它的所有子视图,这在普通的Backbone中是相当困难的。
我从使用Marionette中获得的最大的好处之一是能够非常容易地使用CompositeView呈现树结构,这受复合模式的影响。
作为它如何帮助创建SPA的一般观点,它使得从模块、布局和视图组成应用程序变得非常容易,而每个模块、布局和视图的职责都更少。将应用程序拆分成较小的组件时所经历的低摩擦使其更容易开发、重构和测试。
我发现,如果我有一个想法,将一个视图拆分成多个子视图可能是一个好主意,我应该直接这么做。Marionette让这一切变得很容易,我从来没有后悔过把一些东西拆分成更小的视图,但当我选择不这样做的时候,我已经后悔了,通常最终都会这样做。
抱歉,这并不是关于复合应用程序架构的内容,而是更多地说明了Marionette为什么很好。
发布于 2014-03-15 02:07:27
问: JavaScript中的复合应用程序架构是什么?
答: Marionette是复合的,因为它由不同的库组成。Marionette依赖于backbone backbone也依赖于其他库。当您将所有这些库放在一起时,它们都以自己的方式提供帮助。Backbone可以在没有marionette的情况下使用,但当两者一起使用时,您应该能够解决相同的问题,但代码更少。
问: AngularJS是否提供复合应用程序架构?
答:我不认为so...Because不是由其他JS库组成或依赖的。
问:为什么我需要在JavaScript中使用它?
A:也许你不需要它。当然还有其他库可以解决同样的问题。您甚至可以使用普通的JavaScript并自己解决所有相同的问题。Marionette是一个工具,它使JavaScript更易于使用。jQuery也使JavaScript更易于使用,但解决了一个不同的问题(DOM操作)。Backbone解决了如何在JS中构建应用程序的问题,而Marionette减少了创建应用程序所需的冗余代码量。这一切都是关于什么是适合这项工作的工具。
https://stackoverflow.com/questions/20838812
复制相似问题