¿Por qué a muchos desarrolladores web no les gusta Turbolinks?

Porque causa varios problemas:

  1. Poner el script en el documento listo no siempre funciona, especialmente si navega a otra página porque los turbolinks solo lo ejecutarán una vez.
  2. Hace que trabajar con múltiples diseños / hojas de estilo sea difícil. Como ya sabrá, los turbolinks mantendrán su etiqueta de encabezado una vez que se cargue la primera página, aunque haya navegado a la página que tiene una etiqueta de encabezado diferente. Si espera ver diferentes CSS aplicados a su página, no, no sucederá.
  3. Todos los enlaces en su página web serán alimentados automáticamente por turbolinks. A veces, desea desactivar los enlaces turbo en enlaces particulares. Solución: agregue el atributo data-no-turbolink a su etiqueta de anclaje, o en una etiqueta principal. Esto es terriblemente feo y difícil de mantener. ¿Qué sucede si necesita deshabilitar los enlaces turbo en muchas etiquetas / páginas? Rocíe datos sin turboenlace.

Turbolinks ha logrado que la gente piense que puede aumentar el rendimiento web. Bueno, aparentemente para algunos casos, realmente hizo el trabajo. Pero a medida que su aplicación web se haga más grande y compleja, ya no aumentará significativamente el rendimiento. Si cree que su aplicación necesita un js complejo como SPA, simplemente trabaje con React / Angular / Vue / Ember / etc. El uso de turbolinks no convertirá su web en SPA.

Recientemente revisé el proyecto Turbolinks. Parece que los desarrolladores de Rails tienen muchas herramientas para “hacer el trabajo” rápidamente. No sé mucho sobre la aplicación Rails, pero si puedes construir un verdadero SPA sin necesidad de escribir ningún código JavaScript, no es bueno a largo plazo. En mi punto de vista, veo estos problemas (disculpe si me equivoco):

  • Está malinterpretando el verdadero SPA frente a la aplicación web que imita el comportamiento de carga del SPA.
  • Turbolinks nos ayuda a nosotros, quienes desarrollamos la aplicación web principalmente en el lado del servidor / back-end, a aliviar la carga de mejorar el rendimiento de carga con AJAX y administrar el estado de navegación (atrás / adelante). Aquí está la descripción de Turbolinks en Github: Turbolinks agiliza la navegación de su aplicación web. => No ayuda a convertir su aplicación web de representación clásica del lado del servidor en un verdadero SPA automáticamente.
  • En un verdadero SPA, debe administrar el estado de su aplicación a través de las interacciones de página (traté de evitar las palabras “carga de página” aquí). Además, debe reutilizar los datos que recibe del servidor / API en formato JSON en muchas vistas o estrategias de representación (por ejemplo, ordenar, cambiar el diseño de visualización sin volver a solicitar el lado del servidor). Es por eso que Redux tiene su papel en el mundo JS, puede usar Redux fuera del ecosistema React.

Conclusión, sé que mi respuesta no es lo suficientemente completa, y soy muy vago para pasar más tiempo escribiendo esta respuesta 🙁 Sin embargo, Turbolinks tiene sus casos de uso adecuados. Es posible que su aplicación web no necesite ser un SPA complicado, por lo que elegir las bibliotecas / marcos depende sabiamente de las necesidades de su proyecto y de las preferencias de los desarrolladores principales.

Finalmente, si desea desarrollar un front-end impresionante para su aplicación web … Respete JavaScript. ¡Es un lenguaje de programación serio que sigue mejorando cada año!