Architecture 何时使用Durandal的哪些功能?

Architecture 何时使用Durandal的哪些功能?,architecture,knockout.js,single-page-application,durandal,Architecture,Knockout.js,Single Page Application,Durandal,我是Durandal的新手,到目前为止我很喜欢它,但我想知道一些使用它的应用程序架构问题。例如,何时是使用ko:composevs小部件vs子视图vs视图的好时机 我目前的想法是: 使用完整页面的视图 为子页面使用子视图或可交换的ko:compose 对在多个位置使用的子视图使用小部件 这与预期的用例相符吗?我知道Durandal是高度可定制的,但它基于初学者工具包结构,并使用默认实用程序(knockout.js、jquery、sammy等),使用上述每个元素的正确时间是什么?欢迎加入,并确保在

我是Durandal的新手,到目前为止我很喜欢它,但我想知道一些使用它的应用程序架构问题。例如,何时是使用
ko:compose
vs小部件vs子视图vs视图的好时机

我目前的想法是:

使用完整页面的视图

为子页面使用子视图或可交换的
ko:compose

对在多个位置使用的子视图使用小部件


这与预期的用例相符吗?我知道Durandal是高度可定制的,但它基于初学者工具包结构,并使用默认实用程序(knockout.js、jquery、sammy等),使用上述每个元素的正确时间是什么?

欢迎加入,并确保在上浏览文档,这提供了一个良好的概述

当查看允许组成DOM片段的Durandal特性时,我通常会区分单例(唯一,只有一个)或构造函数(可以是一个或多个)的视图模型。按照惯例,视图模型与同名的*.html文件配对

e、 g看看Durandal的vs中的shell.html

在这两个示例中,
shell.js
返回一个单例,因为只有一个shell,但是第二个示例将导航html提取到它自己的子视图中。正如您所看到的,子视图没有自己的vm,而是绑定了父视图(此处为
shell.js
)。通过这样做,您可以创建更小、更易于维护的片段,如果需要,这些片段可以在其他地方重复使用

有关为vm使用构造函数的示例,请查看

Widget是vm/view((controller.js/view.html)的一种特殊形式,如果需要根据运行它们的上下文对这些元素进行稍微不同的配置,则可以考虑使用它。一个示例可能是作为模态表单的一部分而不是内联表单的一部分运行的表单元素


使用Durandal 1.2,只有小部件可以在合成过程中接收额外的数据,但这将在即将到来的2.0中发生变化。

很好的解释,我非常欣赏示例shell文件,它展示了如何采取不同的方法来完成相同的任务。除了Durandal文档和John Papa教程之外,你还需要付费吗是否知道有其他更好的资源来学习这种类型的架构,特别是与Durandal相关的?