page navigationend change cambiar angularjs angularjs-directive web-component ecmascript-6

angularjs - navigationend - router events subscribe angular 4



Reemplazar angular con tecnologías web estándar (2)

He estado investigando en las últimas 3 semanas y resulta que muchas personas están pensando en una alternativa después de que Angular tomó un camino de cambio drástico. Afortunadamente, el nuevo estándar W3C Web Components en realidad tiene todo lo que necesitamos y funciona ahora con los polyfills del proyecto Polymer . Entonces para responder la pregunta:

  • Directivas angulares -> Los componentes web usan el polyfill hasta que todos los navegadores lo admitan.
  • Módulos angulares -> Módulos ECMA 6 parte del problema se resuelve con importaciones de HTML. Pero también puedes usar Traceur hasta que los navegadores lo admitan.
  • Rutas angulares -> Hay un componente para ese ™ uso <app-router> .
  • Enlace de datos bidireccional angular -> Polymer agrega una capa "mágica" sobre los componentes web estándar. Esto incluye muchas funciones, incluido data-binding .

+ Más Más

Si te estás preguntando sobre el proceso de compilación para concatenar archivos para reducir el número de solicitudes HTTP, echa un vistazo a la publicación de Addy Osmani sobre Vulcanize . Spoiler: es posible que no lo necesite con las próximas optimizaciones de HTTP 2.

Muchos proyectos de Angular utilizan Twitter Bootstrap para el diseño. Polymer puede hacer eso además de jugar muy bien con los elementos de papel de Google (totalmente opcional pero increíblemente increíble).

Si desea familiarizarse con los componentes web en general, aquí hay algunos artículos interesantes: http://webcomponents.org/articles/

Y aquí hay una gran cantidad de componentes web: http://customelements.io/ . No sé si se tratará de un nuevo NPM, pero los componentes de la lista son bastante impresionantes y crecen.

Es relativamente complicado exponer una API para un componente angular. La gente ha ideado todo tipo de métodos desde la función de enlace hasta los eventos emisores . En Web Components, sin embargo, es muy fácil hacer que su componente interactúe con el mundo exterior y, de hecho, la API y los eventos que expone no son muy diferentes de las etiquetas HTML estándar, como <audio> .

Al igual que Angular , también puedes usar Polymer with Dart .

Conclusión

En general, no veo ninguna razón para usar Angular, excepto si:

  1. Usted tiene una gran inversión en código fuente en angular y no quiere portar todo a la web estándar. (Angular 2.0 desaprobará su código de todos modos, por lo que está atascado con Angular 1. *)
  2. Su equipo es demasiado perezoso para aprender una nueva tecnología (en ese caso, la web podría no ser la plataforma adecuada para esta actitud de todos modos).

Angular era bueno para lo que estaba haciendo y tenía su propio ciclo de Hype . Los componentes web resuelven muchos de los problemas que Angular estaba tratando de resolver. Probablemente Angular tuvo un rol como una prueba de concepto para los componentes web. Pero ahora es el momento de seguir adelante. La red se reinventa cada día y es inevitable mover el queso de alguien .

No digo que Polymer sea la respuesta definitiva a todo . En el mejor de los casos, es otro Angular que se volverá inútil en un par de años, pero ahora es un buen momento para aprenderlo y usarlo. Sin embargo, los standards W3C don''t die fácilmente, y Polymer tiende a estar mucho más cerca de ellos.

Hay un elemento para eso ™ es lo nuevo. Hay una aplicación para eso ™

Estoy trabajando en un proyecto que tiene el lujo de usar ECMA 6 en los últimos navegadores para un producto que se enviará en 1,5 años. Así que pensamos por qué no utilizar Web Components ahora que Angular 2 no está disponible (que será ECMA 6). Y mientras estamos en ello, ¿podemos reemplazar a Angular por completo sin tener que volver a la edad de piedra?

Cómo reemplazar angular?

Hay un sitio llamado youmightnotneedjquery.com que básicamente trata acerca de cómo los navegadores modernos en realidad tienen la mayoría de las cosas para las que tradicionalmente se utilizaba jQuery. Estoy interesado en ver algo así para Angular.

Utilizamos principalmente cuatro características angulares. ¿Cuáles son mis opciones para reemplazarlos?

  • Directivas angulares -> Componentes web
  • Módulos angulares -> Módulos ECMA 6 (no exactamente lo mismo)
  • Rutas angulares -> ???
  • Encuadernación de datos bidireccional angular -> ???

PD. No queremos reemplazar Angular con algo similar como Backbone o Ember. Queremos reemplazarlo con tecnologías web estándar, pero si tenemos que usar pequeñas herramientas para llenar el vacío, lo consideraremos.


TLDR: considere seriamente la posibilidad de escribir una aplicación Angular 1.3 compatable de Angular 2.0 antes de rodar su propio marco

Parece como si hubieras identificado que Angular hace muchas cosas de la manera correcta y es por eso que intentas replicarlas, así que básicamente vas a hacer tuyas combinando una mezcolanza de bibliotecas. A menos que tenga una inversión enorme de horas de ingeniería, es probable que el marco que construya sea:

  • Ligeramente documentado
  • Una pesadilla de mantenimiento entre navegadores y (lo peor de todo)
  • Difícil para los nuevos empleados aprender

Si no existiera un marco que hiciera lo que desea hacer, creo que hacerlo funcionar tiene sentido, pero al intentar recrear Angular usted es:

  • Tomando un montón de trabajo de ingeniería que ya ha sido realizado por un equipo dedicado, que podría haberse gastado en la construcción de productos
  • HIZO MUCHO más difícil incorporar a nuevos empleados porque usted tiene que:
    • Encuentre candidatos que estén dispuestos a utilizar un marco nacional en lugar de desarrollar sus habilidades en un marco de código abierto que puedan usar en cualquier otro lado
    • Capacite a estos empleados para usar su marco (y buena suerte a menos que su documentación esté madura)

Sé que su pregunta le pregunta cómo reemplazar a Angular, pero he visto demasiadas compañías que siguen su propio camino y lo pagan en el futuro. Una vez más, si su presupuesto incluye una tonelada de recursos básicos para construir (y documentar y mantener) el marco y no cree que haya posibilidades, las esquinas se cortarán cuando llegue el momento de empujar si las líneas de tiempo se ajustan, luego tu propio podría tener sentido. Sin embargo, creo que debería considerar seriamente leer sobre cómo escribir aplicaciones Angular 1.3 para que sean fáciles de portar a Angular 2.0 e ir por la ruta angular. Solo mira el tamaño de la comunidad que te estás perdiendo:
http://www.airpair.com/js/javascript-framework-comparison