knockoutJS 中的组件与模板?

Components vs templates in knockoutJS?

问题是关于组件和模板的。 我看到组件也与模板做同样的工作,除了它还包括 Viewmodel 概念和使用自定义 HTML 标签。 除了这些,有人可以帮助我了解是否存在任何差异以及何时使用组件与模板吗?

在大多数情况下,组件是打包重复使用的元素或项目中具有自己状态的部分的好方法。这当然也可以使用模板和独立视图模型来完成;组件提供了一种将两个部分组合在一起的方法,从而有助于组织代码。

在 Knockout 3.3 中添加 $componentTemplateNodes 变得有趣:现在,您的组件可以包装子标记,例如

<modal-dialog>
  <main>
   Are you sure you want to quit?
  </main>
  <menu>
    <button>cancel</button>
    <button>ok, quit</button>
  </menu>
</modal-dialog>

这是传统模板无法轻松优雅地完成的事情。