Das Speichern von Daten in LocalStorage ist nützlich, ist jedoch keine gute Lösung, wenn Sie Daten speichern, die auf mehreren Geräten oder Browsern gemeinsam genutzt werden müssen.
Nehmen wir beispielsweise an, Sie möchten allen neuen Benutzern, die sich für Ihr Produkt anmelden, ein willkommenes Modal zeigen. Wenn Sie LocalStorage verwenden, um zu verfolgen, ob ein Benutzer dieses Modal bereits gesehen hat, erhalten Ihre Benutzer immer wieder die Erfahrung, wenn er Geräte oder Browser wechselt.
Hier kommt Remotestorage ins Spiel. Verwenden der gleichen API wie Lokalstorage können Sie Remotestorage leicht lesen und schreiben, während Sie den Zustand auf Browsern und Geräten aufrechterhalten, um eine bessere Benutzererfahrung zu bieten.
Installieren Sie die Bibliothek mit Ihrem bevorzugten Paketmanager:
npm install remote-storageOder geben Sie es einfach in Ihr HTML ein:
< script src =" https://unpkg.com/remote-storage@latest/dist/remote-storage.min.js " sync > </ script >Importieren Sie die Bibliothek und verwenden Sie sie so, wie Sie es LocalStorage tun würden:
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!
}Das war's!
Remotestorage verwendet Benutzer -IDs, um Benutzer zu identifizieren. Eine Benutzer -ID ist eine Zeichenfolge, die einen Benutzer eindeutig identifiziert. Es kann alles sein, was Sie wollen, aber wir empfehlen, ein nicht-köpfiges UUID zu verwenden, um zu verhindern, dass Benutzer andere Benutzer-IDs erraten und auf ihre Daten zugreifen.
Die Benutzer -ID wird festgelegt, wenn Sie eine neue Instanz von Remotestorage erstellen:
const remoteStorage = new RemoteStorage ( {
userId : '123e4567-e89b-12d3-a456-426614174000'
} )Wenn Sie keine Benutzer -ID angeben, generiert Remotestorage eine zufällige UUID, die sich jedes Mal ändert, wenn der Benutzer Ihre Website besucht. Dies ist nützlich für das Testen, besiegt jedoch den Zweck der Remotestorage, da die Daten nicht über Geräte oder Browser bestehen bleiben.
Remotestorage verwendet Instanz -IDs, um die Anwendungsinstanz zu identifizieren, die die Anforderung stellt. Eine Instanz -ID ist eine Zeichenfolge, die eine Anwendungsinstanz eindeutig identifiziert. Normalerweise verwenden Sie dieselbe Instanz -ID für alle Anforderungen derselben Anwendungsinstanz.
Die Instanz -ID wird festgelegt, wenn Sie eine neue Instanz von Remotestorage erstellen:
const remoteStorage = new RemoteStorage ( {
userId : '123e4567-e89b-12d3-a456-426614174000' ,
instanceId : 'my-cool-app'
} ) Wir bieten einen kostenlosen gehosteten Community -Server unter https://api.remote.storage an (das Standardverhalten, wenn kein serverAddress bereitgestellt wird). Dieser gehostete Server sollte nicht für Produktions -Apps verwendet werden, aber er eignet sich hervorragend zum Testen und Prototyping.
Um einen anderen Server zu verwenden, übergeben Sie einfach die Option serverAddress , wenn Sie eine neue Instanz von Remotestorage erstellen:
const remoteStorage = new RemoteStorage ( {
serverAddress : 'https://api.remote.storage' ,
userId : '123e4567-e89b-12d3-a456-426614174000' ,
instanceId : 'my-cool-app'
} )Der Server kann in wenigen Minuten mit Docker mithilfe von Docker gedreht werden. Weitere Informationen finden Sie in der Serverdokumentation.
Remotestorage sollte nur für nicht sensitive Daten verwendet werden. Wir empfehlen, es für Benutzerpräferenzen, Einstellungen und andere nicht sensitive Daten zu verwenden. Aufgrund der Art der öffentlichen API passt sie nicht gut zum Speichern sensibler Daten wie Passwörter oder PII.
LocalStorage ist eine Browser -API, mit der Sie Daten im Browser speichern können. Die Daten werden lokal auf dem Gerät des Benutzers gespeichert und nicht über Geräte oder Browser freigegeben. Remotestorage ist eine Bibliothek, die die LocalStorage -API mit einem Remote -Server kombiniert, um Daten über Browser und Geräte hinweg zu bestehen.
Remotestorage kann ohne Authentifizierung verwendet werden. Wir empfehlen jedoch dringend, JSON Web Tokens (JWT) zu verwenden, um Anforderungen an den Server zu authentifizieren. Dies kann durch Einstellen der Umgebungsvariablen JWT_SECRET in .env auf Ihr JWT -Geheimnis für den Server erfolgen. Weitere Informationen finden Sie in der Serverdokumentation.
Pull -Anfragen sind immer willkommen. Beachten Sie, dass, wenn Sie drastische Änderungen vorschlagen möchten, sicher sein, zuerst ein Problem zur Diskussion zu eröffnen. Dadurch wird sichergestellt, dass Ihr PR akzeptiert wird, bevor Sie daran arbeiten.
Für bestehende Themen, die noch keinen zugewiesenen Mitwirkenden haben, können Sie das Problem kommentieren, wenn Sie daran arbeiten möchten. Wir werden Ihnen das Problem zuweisen, wenn wir der Meinung sind, dass Sie gut passen.
Änderungen vornehmen: Implementieren Sie Ihre Fehlerbehebung oder -funktion, schreiben Sie Tests, um sie abzudecken, und stellen Sie sicher, dass alle Tests bestehen. Stellen Sie sicher, dass Ihr Komitee semantische Festungsnachrichten nutzt und dass Ihre Commit -Nachricht dem herkömmlichen Commit -Format folgt. Öffnen Sie dann eine Pull -Anfrage an den Hauptzweig.