El almacenamiento de datos en LocalStorage es útil, pero no es una buena solución cuando almacena los datos que deben compartirse en múltiples dispositivos o navegadores.
Por ejemplo, supongamos que desea mostrar un modal de bienvenida a todos los nuevos usuarios que se registran en su producto. Si usa LocalStorage para rastrear si un usuario ya ha visto este modal, sus usuarios continuarán obteniendo la experiencia una y otra vez cada vez que cambien de dispositivos o navegadores.
Ahí es donde entra RemoteStorage. Utilizando la misma API que LocalStorage, Remotestorage le permite leer y escribir datos fácilmente sobre la marcha mientras mantiene el estado en los navegadores y dispositivos para proporcionar una mejor experiencia de usuario.
Instale la biblioteca con su administrador de paquetes favorito:
npm install remote-storageO simplemente inclúyalo en su HTML:
< script src =" https://unpkg.com/remote-storage@latest/dist/remote-storage.min.js " sync > </ script >Importar la biblioteca y úsela como lo haría con LocalStorage:
import { RemoteStorage } from 'remote-storage'
const remoteStorage = new RemoteStorage ( { userId : "my-user-id" } )
const hasSeenNewFeature = await remoteStorage . getItem ( 'hasSeenNewFeature' )
if ( ! hasSeenNewFeature ) {
await remoteStorage . setItem ( 'hasSeenNewFeature' , true )
// Highlight your new and exciting feature!
}¡Eso es todo!
RemoteStorage utiliza ID de usuario para identificar a los usuarios. Una ID de usuario es una cadena que identifica de manera única a un usuario. Puede ser lo que desee, pero recomendamos usar un UUID no iterable para evitar que los usuarios adivinen otras ID de usuario y accedan a sus datos.
La ID de usuario se establece cuando crea una nueva instancia de RemoteStorage:
const remoteStorage = new RemoteStorage ( {
userId : '123e4567-e89b-12d3-a456-426614174000'
} )Si no proporciona una ID de usuario, RemoteStorage generará un UUID aleatorio que cambiará cada vez que el usuario visita su sitio. Esto es útil para las pruebas, pero derrota el propósito de Remotestorage ya que los datos no persistirán entre dispositivos o navegadores.
RemoteStorage utiliza ID de instancia para identificar la instancia de la aplicación que está haciendo la solicitud. Una ID de instancia es una cadena que identifica de manera única una instancia de aplicación. Por lo general, usaría la misma ID de instancia para todas las solicitudes de la misma instancia de la aplicación.
La ID de instancia se establece cuando crea una nueva instancia de RemoteStorage:
const remoteStorage = new RemoteStorage ( {
userId : '123e4567-e89b-12d3-a456-426614174000' ,
instanceId : 'my-cool-app'
} ) Ofrecemos un servidor comunitario alojado gratuito en https://api.remote.storage (el comportamiento predeterminado si no se proporciona serverAddress ). Este servidor alojado no debe usarse para aplicaciones de producción, pero es excelente para probar y crear prototipos.
Para usar un servidor diferente, simplemente pase la opción serverAddress al crear una nueva instancia de RemoteStorage:
const remoteStorage = new RemoteStorage ( {
serverAddress : 'https://api.remote.storage' ,
userId : '123e4567-e89b-12d3-a456-426614174000' ,
instanceId : 'my-cool-app'
} )El servidor se puede escindir usando Docker en unos minutos. Consulte la documentación del servidor para obtener más información.
RemotStage solo debe usarse para datos no sensibles. Recomendamos usarlo para cosas como preferencias de usuario, configuraciones y otros datos no sensibles. Debido a la naturaleza de la API pública, no es una buena opción para almacenar datos confidenciales como contraseñas o PII.
LocalStorage es una API del navegador que le permite almacenar datos en el navegador. Los datos se almacenan localmente en el dispositivo del usuario y no se comparten en dispositivos o navegadores. RemoteStorage es una biblioteca que combina la API LocalStorage con un servidor remoto para persistir en los datos en los navegadores y dispositivos.
RemoteStorage se puede usar sin ninguna autenticación, pero recomendamos que utilice un uso de JSON Web Tokens (JWT) para autenticar las solicitudes al servidor. Esto se puede hacer configurando la variable de entorno JWT_SECRET en .env en su secreto JWT para el servidor. Consulte la documentación del servidor para obtener más información.
Las solicitudes de extracción siempre son bienvenidas. Tenga en cuenta que si va a proponer cambios drásticos, asegúrese de abrir un problema para la discusión primero. Esto asegurará que su PR sea aceptado antes de comenzar a trabajar en ello.
Para cualquier problema existente que aún no tenga un contribuyente asignado, no dude en comentar sobre el tema si desea trabajar en él. Le asignaremos el problema si creemos que es un buen ajuste.
Hacer cambios: implementa su corrección de errores o característica, escriba pruebas para cubrirlo y asegúrese de que todas las pruebas pasen. Asegúrese de que su confirmación aproveche los mensajes de confirmación semántica y que su mensaje de confirmación siga el formato de compromiso convencional. Luego abra una solicitud de extracción a la rama principal.