Как обновить приложение Durandal.js до Aurelia?

У меня есть существующее приложение Durandal.js, которое использует все возможности ES5, но я хочу обновить его до новой платформы Aurelia. Каков надлежащий путь обновления и какой самый простой способ обновиться с максимальной минимальной болью? Есть ли документ с пути обновления?

Ответы

Ответ 1

(Пожалуйста, не стесняйтесь сообщать об этом сообществу, помогая)

Загрузка модуля

  • Aurelia поддерживает использование модулей AMD и require.js в качестве загрузчика модулей. Если вы используете require.js с Durandal и хотите преобразовать свои модули в Aurelia, они должны быть почти одинаковыми, в зависимости от любых будущих изменений require.js.

  • Обратные вызовы жизненного цикла остаются теми же значениями, что activate, attached, detached, deactivate, canActivate, canDeactivate, и любые другие должны оставаться неизменными. Они также по-прежнему соглашаются с возвращением обещания.

  • Если вы решите не придерживаться require.js, вы можете конвертировать модули AMD из формата AMD в формат ES6+. Для этого требуется удалить первую или две строки последней строки в модуле AMD и заменить ее экспортом класса, подобным этому -

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

    становится

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

Если инъекционная деталь представляет собой систему aurelia DI.

привязки данных

  • Aurelia предоставляет разработчику возможность использовать любые библиотеки привязки данных, которые вы хотите, включая, но не ограничиваясь, значения по умолчанию aurelia-binding, handlebars, knockout и т.д.

  • Некоторые из этих библиотек могут по-прежнему нуждаться в плагинах для правильного обновления при изменении значений, но это незавершенный процесс, чтобы найти, что делать. Если вы используете Durandal 2.1 и knockout, рекомендуется оставить привязку данных на месте как есть, и поэтапный подход к обновлению - по одной модели представления за раз. Это незавершенное производство и будет объяснено, что лучше двигаться вперед

  • Связывание данных Aurelia пытается использовать новейшие технологии, но будет изящно отходить от грязной проверки. Это позволяет разработчику строить в будущем, но поддерживать настоящее.