¿Cómo actualizo mi aplicación Durandal.js a Aurelia?
(2)
Tengo una aplicación existente de Durandal.js que aprovecha todas las funciones de ES5, pero quiero actualizarla a la nueva plataforma Aurelia. ¿Cuál es la ruta de actualización adecuada y cuál es la forma más sencilla de actualizar por adelantado con el menor dolor posible? ¿Hay un documento con la ruta de actualización?
(Por favor, siéntase libre de hacer de esta una respuesta comunitaria contribuyendo)
Carga del módulo
Aurelia admite el uso de módulos AMD y require.js como cargador de módulos. Si está utilizando require.js con Durandal y desea convertir sus módulos a Aurelia, deberían ser casi idénticos, dependiendo de los cambios futuros que requiera.js.
Las devoluciones de llamada del ciclo de vida siguen siendo el mismo significado que
activate
,attached
,detached
,deactivate
,canActivate
,canDeactivate
, y cualquier otro debe permanecer igual. También siguen aceptando devolver una promesa.Si elige no atenerse a require.js, puede convertir los módulos AMD del formato AMD al formato ES6 +. Esto requiere eliminar la primera o dos líneas y la última línea en el módulo AMD y reemplazarlo con una clase de exportación similar a esta:
define([], function (){ // stuff ]);
se convierte en
import {inject} from ''aurelia-framework''; @inject() export class TheClassName{ // stuff }
Donde la pieza inyectada es el sistema DI de aurelia.
El enlace de datos
Aurelia le brinda al desarrollador la capacidad de utilizar las bibliotecas de enlace de datos que desee, incluidas, entre otras, las
aurelia-binding
, elhandlebars
, elknockout
, etc. predeterminados.Es posible que algunas de estas bibliotecas aún necesiten complementos para actualizarse correctamente cuando se produzcan cambios de valor, pero este es un trabajo en progreso para encontrar cuáles. Si está utilizando Durandal 2.1 y
knockout
, se recomienda dejar el enlace de datos en su lugar tal como está y tomar un enfoque paso a paso para la actualización, un modelo de vista a la vez. Este es un trabajo en progreso y se explicará mejor avanzandoEl enlace de datos de Aurelia intenta hacer uso de la tecnología más nueva disponible, pero con mucho gusto retrocederá a la comprobación de errores. Esto permite al desarrollador construir para el futuro, pero respaldar el presente.
El siguiente artículo explica una posible ruta de actualización "Actualización a Aurelia desde Durandal.js":
https://github.com/aurelia/framework/blob/master/doc/article/drafts/durandal-to-aurelia.md
Y la extensión de durandal "Durelia" ayuda con la migración: