es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utilice NuxtJs en el lado del servidor para hidratar un cliente Cordova.

Estoy intentando actualizar una antigua aplicación móvil escrita en Javascript puro + React alojada en Cordova. Esta aplicación aprovecha una API simple en el lado del servidor:
– cuando la aplicación requiere una página, envía una solicitud al servidor
– el servidor elabora la solicitud, busca los recursos y luego responde con un HTML+JS completo. El Javascript es una vista de ReactJs compilada con Gulp/Browserify
– la aplicación toma la respuesta y la guarda en una base de datos local de Sqlite, luego monta el código recibido y la vista se vuelve reactiva.
– si el usuario solicita una vista pero no tiene conectividad, la aplicación busca en la base de datos de Sqlite si hay una vista almacenada en caché y la utiliza en lugar de solicitar una copia nueva al servidor.

Cuando se desarrolla, el código React JSX se compila inmediatamente a JS puro, por lo que, cuando está en producción, la API solo necesita combinar el JS puro con la plantilla HTML. Además, agregar nuevas características y solucionar errores es bastante fácil, porque cada usuario básicamente descarga cualquier vista actualizada cada vez que ingresa en ella.

Los problemas con este enfoque son:
– el desarrollo es doloroso debido a la compilación continua.
– una parte “base” de la aplicación reside en los activos de Cordova (básicamente las utilidades para obtener datos del servidor, almacenamiento en caché, etc.) y solucionar estos problemas requiere una nueva versión de la aplicación o parches de reemplazo poco elegantes.
– la función de almacenamiento en caché a menudo causa problemas en la base de datos de Sqlite (que también se utiliza para otras cosas en la aplicación); como resultado, la base de datos a veces se corrompe y el usuario debe borrar los datos de la aplicación.
– nos gustaría deshacernos de React.

Ya hemos utilizado NuxtJs para generar sitios estáticos, y es genial, pero en este caso no puedo aprovechar el SSG porque la aplicación debe ser casi completamente servida desde la API, para que podamos mantener la facilidad para agregar y corregir características.
Nunca he usado NuxtJs SSR y me pregunto si podría ser adecuado para mi caso de uso, por ejemplo, ¿podría lanzar una instancia de NuxtJs en el lado del servidor que genere la salida HTML y alimente un cliente de Javascript vacío en Cordova? ¿Hay una mejor manera de lograr esta tarea? ¿Debería usar solo Vue en su lugar?
Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en javascript, cordova y nuxt.js, aconsejaría que la mejor manera de actualizar la antigua aplicación móvil sería aprovechar NuxtJs SSR.

    NuxtJs SSR permite que la aplicación se sirva al cliente en un estado pre-renderizado. Esto significa que el servidor genera la salida de HTML y el cliente solo necesita hidratar un cliente de Javascript ‘casi vacío’ en Cordova, lo que hace que la aplicación sea más rápida y eficiente.

    Para lograr esto, puedes iniciar una instancia de NuxtJs en el lado del servidor, que genere la salida de HTML y hidrate el cliente de Javascript ‘casi vacío’ en Cordova. Al hacer esto, puedes deshacerte del framework React y aún mantener la funcionalidad de agregar y corregir fácilmente.

    Recomendaría explorar el uso de solo Vue en lugar de React, ya que Vue es ligero y más fácil de usar, especialmente al trabajar con Cordova.

    En general, aprovechar NuxtJs SSR y posiblemente utilizar Vue en lugar de React podría resolver los problemas asociados con el enfoque actual mientras se hace que la aplicación sea más eficiente y más fácil de desarrollar.

Comments are closed.