16

ES5 のすべての機能を利用する既存の Durandal.js アプリがありますが、それを新しい Aurelia プラットフォームにアップグレードしたいと考えています。適切なアップグレード パスとは何ですか? また、事前にできるだけ簡単にアップグレードする最も簡単な方法は何ですか? アップグレード パスが記載されたドキュメントはありますか?

4

2 に答える 2

17

(貢献して、これをコミュニティの回答にしてください)

モジュールのロード

  1. Aurelia は、AMD モジュールと require.js をモジュール ローダーとして使用することをサポートしています。Durandal で require.js を使用していて、モジュールを Aurelia に変換したい場合、require.js への将来の変更に応じて、モジュールはほぼ同じになるはずです。

  2. activateライフサイクル コールバックは、attacheddetacheddeactivatecanActivatecanDeactivate、およびその他のコールバックが同じままであることを意味します。彼らはまた、約束を返すことをまだ受け入れています。

  3. require.js に固​​執しない場合は、AMD モジュールを AMD 形式から ES6+ 形式に変換できます。これには、AMD モジュールの最初の行または 2 行と最後の行を削除し、次のようなクラス エクスポートに置き換える必要があります -

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

    になる

    import {inject} from 'aurelia-framework';
    @inject()
    export class TheClassName{
        // stuff
    }
    

注入部分が aurelia の DI システムです。

データバインディング

  1. aurelia-bindingAurelia は、デフォルトの 、handlebarsknockoutなどを含むがこれらに限定されないデータ バインディング ライブラリを使用する機能を開発者に提供します。

  2. これらのライブラリの一部では、値の変更が発生したときに適切に更新するためにプラグインが必要な場合がありますが、これは現在進行中の作業です。Durandal 2.1 を使用してknockoutいて、データ バインディングをそのままにして、一度に 1 つのビュー モデルを段階的にアップグレードすることをお勧めします。 これは進行中の作業であり、今後さらに詳しく説明されます

  3. Aurelia のデータ バインディングは、利用可能な最新のテクノロジを利用しようとしますが、適切にダーティ チェックにフォールバックします。これにより、開発者は将来に向けて構築しながら現在をサポートできます。

于 2015-01-26T16:47:22.460 に答える