Entonces, estoy tratando de obtener datos de almacenamiento local cuando Internet está en línea usando Vuejs. Mi pila de aplicaciones ToDo en Vuejs/Laravel/MySQL. Básicamente, estoy almacenando datos en localStorage cuando Internet está en línea. Además, he agregado todas las funcionalidades de la aplicación ToDo con capacidades fuera de línea, como agregar, eliminar y editar elementos pendientes. No puedo publicar los datos de almacenamiento local en la base de datos MySQL.
updateAllTodos() { let data = { todos: this.todos }; if (navigator.onLine) { axios.post(this.api + "/update_all", data).then((res) => { localStorage.setItem("todos", JSON.stringify(this.todos)); }); } else { JSON.parse(localStorage.getItem("todos", JSON.stringify(this.todos))); } },¿Cómo puedo publicar los datos de almacenamiento local cuando Internet está en línea?
Puede manejar esto (actualizar el estado en línea) utilizando el detector de eventos y establecer la variable verdadero/falso. Más tarde, puede observar la propiedad de datos y hacer algo en consecuencia.
data() { return { isOnLine:navigator.onLine } }, mounted() { window.addEventListener('online', () => {this.isOnLine = true}); window.addEventListener('offline', () => {this.isOnLine = false}); }, watch: { onLine: function (val) { if(this.isOnLine){ // make axios call here } }, }