如何将我的Durandal.js应用程序升级到Aurelia?

时间:2015-01-26 16:39:04

标签: durandal aurelia

我有一个现有的Durandal.js应用程序,它充分利用了所有ES5功能,但我希望将其升级到新的Aurelia平台。什么是正确的升级路径?最简单的方法是尽可能地减少前面的最简单方法?是否有升级路径的文档?

2 个答案:

答案 0 :(得分:16)

(请随意通过捐款将其作为社区答案)

模块加载

  1. Aurelia支持使用AMD模块和require.js作为模块加载器。如果您将require.js与Durandal一起使用并希望将模块转换为Aurelia,则它们应该几乎完全相同,具体取决于将来对require.js的任何更改。

  2. 生命周期回调与activateattacheddetacheddeactivatecanActivatecanDeactivate保持一致,而任何其他人应该保持不变。他们还接受回复承诺。

  3. 如果您选择不坚持使用require.js,您可以将AMD模块从AMD格式转换为ES6 +格式。这需要删除AMD模块中的第一行或两行和最后一行,并将其替换为类似于此的类导出 -

    define([], function (){
        // stuff
    ]);
    

    变为

    import {inject} from 'aurelia-framework';
    @inject()
    export class TheClassName{
        // stuff
    }
    
  4. 注射片是aurelia的DI系统。

    数据绑定

    1. Aurelia为开发人员提供了使用您希望的任何数据绑定库的能力,包括但不限于默认的aurelia-bindinghandlebarsknockout等。

    2. 这些库中的一些可能仍然需要插件才能在发生值更改时正确更新,但这是一项正在进行的工作,以查找哪些内容。如果您使用的是Durandal 2.1和knockout,建议按原样保留数据绑定,并逐步采用一种视图模型进行升级。 这是一项正在进行中的工作,将会更好地解释

    3. Aurelia数据绑定试图利用可用的最新技术,但会优雅地回退到脏检查。这使开发人员能够为未来而建立,但支持现在。

答案 1 :(得分:1)

以下文章介绍了可能的升级路径"从Durandal.js升级到Aurelia":

https://github.com/aurelia/framework/blob/master/doc/article/drafts/durandal-to-aurelia.md

和durandal扩展" Durelia"有助于迁移:

https://github.com/josundt/Durelia