【问题标题】:When to use what features of Durandal?何时使用 Durandal 的哪些功能?
【发布时间】:2013-06-03 04:36:55
【问题描述】:

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

我目前的想法是:

使用完整页面的视图

子页面使用子视图或ko: compose 可互换

为不止一处使用的子视图使用小部件

这与预期的用例相符吗?我知道 Durandal 是高度可定制的,但是基于 Starter Kit 结构并使用默认实用程序(knockout.js、jquery、sammy 等),使用上述每个元素的合适时间是什么时候?

【问题讨论】:

    标签: architecture knockout.js single-page-application durandal


    【解决方案1】:

    欢迎加入并确保阅读http://durandaljs.com/pages/docs/ 的文档,该文档提供了很好的概述。

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

    例如,看看 Durandal 的 sample shell.htmlJumpStarter's shell.html 中的 shell.html

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

    对于使用构造函数的 vm 示例,请查看 master detail sample

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

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

    【讨论】:

    • 很好的解释,我非常感谢示例 shell 文件,它展示了如何采用不同的方法来完成相同的任务。除了 Durandal 文档和您必须付费购买的 John Papa 教程之外,您是否知道任何其他好的资源可以帮助您更多地了解这种类型的架构,希望专门与 Durandal 相关?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 2014-04-29
    • 2012-05-24
    • 1970-01-01
    相关资源
    最近更新 更多