Búsqueda de sitios web

javascript - ¿Qué aspectos de Angular 2 debo tener en cuenta al crear una aplicación Angular 1?


Pronto tendré que reescribir una aplicación web relativamente grande/compleja en Angular 1.x. Aún tengo que aprender Angular 1.x. Sé que Angular 2.x será completamente incompatible con 1.x, pero ¿hay algo que pueda hacer para prepararme para una reescritura en Angular 2.x?

Por ejemplo:

  • Estructura del código: ¿puedo separar el código que tendrá que ser desechado del código que podría ser reutilizable? La aplicación web actual no tiene una API REST, así que supongo que al menos la API REST que escribiré será reutilizable para la versión 2.x. Pero me preocupa el código del lado del cliente aquí.

  • Elección de idioma: lo más probable es que se me pida usar JS puro (la versión consumida directamente por el navegador), pero ¿sería recomendable usar Typescript en su lugar para escribir la aplicación Angular 1.x, dado que eso es en lo que Angular 2.x está escrito?

  • ¿Algo más?

Respuesta #1

Recomendaría usar directivas con su propio controlador basado en "controllerAs". Esto te acerca al estilo de componentes de Angular 2.0. De hecho, es muy similar. Aquí hay un ejemplo de lo que quiero decir:

http://www.syntaxsuccess.com/viewarticle/migrating-from-angular-1.x-to-angular-2.0

Respuesta #2

No hay razón para escribir Angular 2.x en Typescript, excepto si lo prefieres o quieres contribuir al código o si algo no está funcionando, revisa el código de Angular 2.x para entenderlo mejor. Typescript no hace que JS sea más rápido ni nada por el estilo, solo ofrece tipado estático que se utiliza para ayudar a las herramientas de desarrollo como el IDE que uses. Piensa en Visual Studio.

Sugiero que comiences a usar ES6, que introduce clases (bueno, azúcar sintáctico, js sigue siendo js) que usa Angular 2, utilizando un transpilador para convertir código ES6 a ES5 y que creo que cada vez más gente usará (para horror de Crockford y otros).

No uses cosas complejas de directiva como transclude, compile/pre-link, etc., mantenlo simple ya que Angular 2.x está reduciendo la mentalidad de inventar nuevas formas de confundir a los programadores. No son exactamente lo mismo, pero Angular 2.x se basará en componentes que son una especie de similar a las directivas en la forma en que usan plantilla/vista.

Familiarízate con la importación/exportación de ES6.

Aléjate de usar $scope, se eliminará en su forma actual.

De hecho, escribí un post de blog un poco más detallado sobre ello, http://www.alajmovic.com/2015/07/18/preparing-for-angular-2.html