vanilla top react framework best javascript dojo web-frameworks web-frontend

javascript - top - ¿Es posible combinar Dojo con otros frameworks JS?



top frameworks javascript 2018 (2)

Lo máximo que puedo decir del extremo Dojo es que Dojo es un juego de herramientas, no un marco per se, y por lo tanto, generalmente no debería interferir con otros scripts o frameworks. Lo contrario, por otro lado, no siempre se puede decir. Entonces, aunque no puedo hablar de todas las opciones en su lista, no creo que el Dojo en sí se interponga en su camino.

Una posible excepción que puedo pensar es si alguno de los frameworks en cuestión aumentan los prototipos nativos, particularmente Object , ya que afectará las propiedades enumerables en todos los objetos y puede causar estragos en cualquier script que use para ... in loops without hasOwnProperty .

La única otra excepción en la que puedo pensar es si alguno de los frameworks en cuestión por algún motivo no coexiste bien con un cargador de módulos AMD.

Dicho esto, también te aconsejaría tomar la "promesa" de los marcos con un grano de sal: dices que en este momento estás descubriendo que implementar cosas con Dojo requiere esfuerzo, y, naturalmente, los marcos que incluyes son atractivos porque hacen ciertas partes del desarrollo de aplicaciones son fáciles de ofrecer, al ofrecer patrones y convenciones, pero la pregunta que debe hacerse es: ¿qué tan duro hace su marco de trabajo su trabajo en el momento en que necesita hacer algo al aire libre o en contra de esas convenciones? Dojo puede tener una curva de aprendizaje, pero generalmente no le impide hacer nada.

Estamos utilizando Dojo (1.9.3) como un marco JS para construir una aplicación de una sola página. Sin embargo, estamos dedicando demasiado tiempo a las peculiaridades de Dojo, por lo que incluso las tareas simples tardan mucho tiempo en implementarse. Y debido a la falta de documentación adecuada, a menudo tenemos que recurrir a leer el código fuente y luego implementar una solución alternativa.

Siento que aceleraríamos el desarrollo y haríamos más fácil mantener el código si pasamos a otro marco. Nuestra base de código es bastante grande, ya que es una aplicación compleja, por lo que no tenemos tiempo para reescribir todo al mismo tiempo. Por lo tanto, esperaba que fuera posible combinar Dojo con algún otro marco, para que podamos alejarnos de Dojo de forma incremental. Solo he incursionado en estos otros frameworks en mi tiempo libre, y solo escribí algunas pequeñas aplicaciones de ejemplo, así que no siento que realmente pueda decir si jugarían bien con otro framework, así que espero que algunos de usted por ahí puede.

Los marcos que he estado investigando, en el orden de lo que preferiría según mi breve investigación, pero no dude en convencerme de lo contrario.

  1. Ascua
  2. Reaccionar
  3. Polímero
  4. Angular (el último debido a mi miedo a la revisión principal 2.0)

Si bien la pregunta principal es si es posible o no, también sugiera si cree que es una mala idea hacerlo.


Puedes usarlos juntos, pero también depende de lo que trates de hacer. Algunas acciones pueden tomar más tiempo para la integración que otras.

Dijit

Solo tengo experiencia con Ember.js y AngularJS, pero un concepto común en estos marcos es el enlace de datos. El enlace de datos le permite simplemente actualizar el modelo y la vista reflejará los cambios en el modelo.
Sin embargo, estos generalmente no funcionan bien con widgets. Los widgets (como la biblioteca Dijit) crean su propio DOM y, debido a ello, los marcos como Ember.js o AngularJS no son "conscientes" de estos cambios y no pueden actualizar la vista en ese caso.

Para que funcione, deberá ajustar sus widgets en componentes (Ember.js) o directivas (AngularJS). Un ejemplo de tal envoltura se puede encontrar en esta respuesta .

Carga de dependencia

La carga de dependencia puede ser confusa. AngularJS viene con su propio sistema de inyección de dependencia, lo que significa que tendrá que usar el cargador Dojo AMD para módulos Dojo y la inyección de dependencia AngularJS para AngularJS. Los dos funcionan bien juntos hasta donde yo sé (he visto ejemplos con el cargador de AMD RequireJS, por lo que debería ser posible).

Con Ember.js tuve problemas un poco más para integrarme con el cargador de AMD. El creador de Ember.js (Tom Dale) no cree en AMD, y he visto varios problemas al tratar de cargar los componentes de Ember.js con un cargador AMD.

Todo depende de cómo desee utilizar estos marcos y qué esfuerzo adicional desea realizar. Para mí, parece que ni siquiera está seguro de para qué usar estos frameworks, ya que React.js o Polymer tienen un propósito completamente diferente que AngularJS o Ember.js, por ejemplo.