每次我阅读有关 Javascript 的新内容时,我都会阅读有关 Durandal 和 Aurelia 的内容。我在很多博客上听到开发人员要求从 Durandal 升级到 Aurelia 或类似的版本。虽然我确实有一个想法,但我对这两者的真正含义以及它们之间的关系感到困惑,或者它们是否有关系。
这是我的看法。Durandal 是一个轻量级的 SPA 框架,它允许您利用其他 JS 库和实用程序的优点来构建应用程序。所以它本身并不是一个完整的包(与 Angular 不同),但可以使用不同的外部 JS 库 - 例如用于绑定的 Knockout、用于 DOM 的 jQuery、用于路由的 Sammy 等。
另一方面,Aurelia 是混淆的来源。它也是 SPA 框架吗?还是仅限于作为客户端(前端)框架?更让我困惑的是,有一个Durandal 博客只讨论了 Aurelia。我从互联网上知道,Rob Eisenberg 在开始研究 Aurelia 之前曾在 Durandal 工作过。那么Aurelia是Durandal的升级版,还是完全不相关的东西?
我仍然有一些问题,但我猜到目前为止我的问题的结构只会要求自以为是的答案。所以在这个问题结束之前,任何有关的描述、链接和参考都将是惊人的。我一定会在这里更新并添加有用的链接。
根据罗伯·艾森伯格的说法:
“Aurelia 只是 Durandal 的 vNext。有时我们甚至称它为 Durandal Aurelia。就像 XBox 360 与 XBox One。网络正在显着发展,所以我们正在将 Durandal 演变成 Aurelia 以匹配。”
另一方面,Aurelia 是混淆的来源。它也是 SPA 框架吗?还是仅限于作为客户端(前端)框架?
是的,它是一个 SPA 框架。实际上,它是一个用于构建 Javascript 客户端的框架,这意味着您可以为浏览器、桌面和移动开发应用程序。看看这个视频https://channel9.msdn.com/Events/Seth-on-the-Road/DevIntersection-2015/Rob-Eisenberg-on-Aurelia
与 Durandal 不同的是,Aurelia 带有完整的包裹,您需要的一切都在那里。但是,它具有完美的可插拔性和可扩展性,如有必要,您可以结合任何其他技术。
这是官方网站www.aurelia.io提供的描述
嗯,其实很简单。Aurelia 只是 JavaScript。然而,它不是昨天的 JavaScript,而是明天的 JavaScript。通过使用现代工具,我们已经能够在 ECMAScript 2016 中从头开始编写 Aurelia。这意味着我们可以使用本机模块、类、装饰器等……而您也拥有它们。
Aurelia 不仅是用现代和未来的 JavaScript 编写的,而且还采用了现代的架构方法。过去,框架一直是单一的野兽。不过不是奥蕾莉亚。它是作为一系列协作库构建的。综合起来,它们形成了一个强大而健壮的框架,用于构建单页应用程序 (SPA)。但是,Aurelia 的库通常可以单独使用,也可以在传统网站中使用,甚至可以通过 NodeJS 等技术在服务器端使用。”
Aurelia 的一些最大优势(在我看来)是:
强大的数据绑定。与 Angular 等其他框架不同,Aurelia 使用了 Javascript 的新特性。所以,所有数据绑定的东西在 Aurelia 中通常更快(来源http://blog.durandal.io/2015/12/04/aurelia-repaint-performance-rules/)
简单的约定和简单的语法。在 Aurelia 中开发真的很容易。有很多功能可以使用。如果你想覆盖一些约定,通常 1 行代码就足够了。(参见http://aurelia.io/docs.html#/aurelia/framework/1.0.0-beta.1.0.3/doc/article/getting-started)
希望能帮助到你!