在LocalStorage中存儲數據很有用,但是當您存儲需要在多個設備或瀏覽器上共享的數據時,這不是一個好的解決方案。
例如,假設您想向所有註冊產品的新用戶展示一種歡迎模式。如果您使用LocalStorage來跟踪用戶是否已經看到這種模式,則您的用戶每次切換設備或瀏覽器時都會繼續一遍又一遍地獲得體驗。
這就是遠程遺產的來源。使用與LocalStorage相同的API,RemoTestorage允許您輕鬆地隨時讀取和寫入數據,同時在跨瀏覽器和設備之間保持狀態,以提供更好的用戶體驗。
使用您喜歡的軟件包管理器安裝庫:
npm install remote-storage或只需將其包含在您的html中:
< script src =" https://unpkg.com/remote-storage@latest/dist/remote-storage.min.js " sync > </ script >導入圖書館並像您將其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!
}就是這樣!
remotestorage使用用戶ID來識別用戶。用戶ID是一個唯一標識用戶的字符串。它可以是您想要的任何東西,但是我們建議使用非足夠的UUID來防止用戶猜測其他用戶ID並訪問其數據。
當您創建remotestorage的新實例時,將設置用戶ID:
const remoteStorage = new RemoteStorage ( {
userId : '123e4567-e89b-12d3-a456-426614174000'
} )如果您不提供用戶ID,則remotestorage將生成一個隨機的UUID,每次用戶訪問您的網站時都會更改。這對於測試很有用,但由於數據不會在設備或瀏覽器之間持續存在,因此會破壞Remotestorage的目的。
remotestorage使用實例ID來標識正在提出請求的應用程序實例。實例ID是一個唯一標識應用程序實例的字符串。通常,您將對來自同一應用程序實例的所有請求使用相同的實例ID。
當您創建remotestorage的新實例時,設置了實例ID:
const remoteStorage = new RemoteStorage ( {
userId : '123e4567-e89b-12d3-a456-426614174000' ,
instanceId : 'my-cool-app'
} )我們在https://api.remote.storage上提供免費的託管社區服務器(如果沒有提供serverAddress ,則默認行為)。該託管服務器不應用於生產應用程序,但非常適合測試和原型製作。
要使用其他服務器,請在創建remotestorage的新實例時傳遞serverAddress選項:
const remoteStorage = new RemoteStorage ( {
serverAddress : 'https://api.remote.storage' ,
userId : '123e4567-e89b-12d3-a456-426614174000' ,
instanceId : 'my-cool-app'
} )可以在幾分鐘內使用Docker旋轉服務器。有關更多信息,請參見服務器文檔。
遠程遺產僅應用於非敏感數據。我們建議將其用於用戶偏好,設置和其他非敏感數據之類的東西。由於公共API的性質,它不太適合存儲諸如密碼或PII之類的敏感數據。
LocalStorage是瀏覽器API,可讓您將數據存儲在瀏覽器中。數據存儲在當地的用戶設備上,並且不會在設備或瀏覽器上共享。 Remotestorage是一個將LocalStorage API與遠程服務器結合在一起的庫,可以在瀏覽器和設備之間持續數據。
可以不用任何身份驗證使用remotestorage,但是我們強烈建議使用JSON Web令牌(JWT)對服務器進行身份驗證請求。這可以通過將.env中的JWT_SECRET環境變量設置為服務器的JWT Secret來完成。有關更多信息,請參見服務器文檔。
始終歡迎拉動請求。請注意,如果您要提出重大更改,請確保首先開放討論問題。這將確保您的公關在開始研究之前將被接受。
對於任何尚未有分配貢獻者的現有問題,如果您想解決問題,請隨時評論該問題。如果我們認為您很合適,我們將把問題分配給您。
進行更改:實現錯誤修復或功能,編寫測試以覆蓋它,並確保所有測試都通過。確保您的提交利用語義提交消息,並確保您的提交消息遵循傳統提交格式。然後打開向主分支的拉請請求。