การจัดเก็บข้อมูลใน LocalStorage นั้นมีประโยชน์ แต่ไม่ใช่ทางออกที่ดีเมื่อคุณจัดเก็บข้อมูลที่ต้องใช้ร่วมกันในอุปกรณ์หรือเบราว์เซอร์หลายเครื่อง
ตัวอย่างเช่นสมมติว่าคุณต้องการแสดงการต้อนรับเป็นโมดอลสำหรับผู้ใช้ใหม่ทั้งหมดที่ลงทะเบียนสำหรับผลิตภัณฑ์ของคุณ หากคุณใช้ LocalStorage เพื่อติดตามว่าผู้ใช้ได้เห็นโมดอลนี้แล้วผู้ใช้ของคุณจะยังคงได้รับประสบการณ์ซ้ำแล้วซ้ำอีกทุกครั้งที่พวกเขาเปลี่ยนอุปกรณ์หรือเบราว์เซอร์
นั่นคือสิ่งที่ remotestorage เข้ามาโดยใช้ API เดียวกับ LocalStorage, RemotEstorage ช่วยให้คุณสามารถอ่านและเขียนข้อมูลได้อย่างง่ายดายในขณะที่รักษาสถานะข้ามเบราว์เซอร์และอุปกรณ์เพื่อให้ประสบการณ์การใช้งานที่ดีขึ้น
ติดตั้งไลบรารีโดยใช้ตัวจัดการแพ็คเกจที่คุณชื่นชอบ:
npm install remote-storageหรือเพียงแค่รวมไว้ใน HTML ของคุณ:
< script src =" https://unpkg.com/remote-storage@latest/dist/remote-storage.min.js " sync > </ script >นำเข้าห้องสมุดและใช้งานเหมือนที่คุณต้องการ
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:
const remoteStorage = new RemoteStorage ( {
userId : '123e4567-e89b-12d3-a456-426614174000'
} )หากคุณไม่ได้ให้ ID ผู้ใช้ IDESTESTORAGE จะสร้าง UUID แบบสุ่มซึ่งจะเปลี่ยนทุกครั้งที่ผู้ใช้เข้าชมเว็บไซต์ของคุณ สิ่งนี้มีประโยชน์สำหรับการทดสอบ แต่เอาชนะจุดประสงค์ของการทำงานระยะไกลเนื่องจากข้อมูลจะไม่คงอยู่ในอุปกรณ์หรือเบราว์เซอร์
remotestorage ใช้ ID อินสแตนซ์เพื่อระบุอินสแตนซ์แอปพลิเคชันที่กำลังร้องขอ ID อินสแตนซ์เป็นสตริงที่ระบุอินสแตนซ์แอปพลิเคชันที่ไม่ซ้ำกัน โดยทั่วไปคุณจะใช้ ID อินสแตนซ์เดียวกันสำหรับคำขอทั้งหมดจากอินสแตนซ์แอปพลิเคชันเดียวกัน
ID อินสแตนซ์ถูกตั้งค่าเมื่อคุณสร้างอินสแตนซ์ใหม่ของ remotestorage:
const remoteStorage = new RemoteStorage ( {
userId : '123e4567-e89b-12d3-a456-426614174000' ,
instanceId : 'my-cool-app'
} ) เราเสนอเซิร์ฟเวอร์ชุมชนโฮสต์ฟรีที่ https://api.remote.storage (พฤติกรรมเริ่มต้นหากไม่มี serverAddress ที่มีให้) เซิร์ฟเวอร์โฮสต์นี้ไม่ควรใช้สำหรับแอพการผลิต แต่มันยอดเยี่ยมสำหรับการทดสอบและการสร้างต้นแบบ
หากต้องการใช้เซิร์ฟเวอร์อื่นเพียงผ่านตัวเลือก serverAddress เมื่อสร้างอินสแตนซ์ใหม่ของ remotestorage:
const remoteStorage = new RemoteStorage ( {
serverAddress : 'https://api.remote.storage' ,
userId : '123e4567-e89b-12d3-a456-426614174000' ,
instanceId : 'my-cool-app'
} )เซิร์ฟเวอร์สามารถหมุนได้โดยใช้ Docker ในไม่กี่นาที ดูเอกสารเซิร์ฟเวอร์สำหรับข้อมูลเพิ่มเติม
ควรใช้ remotestorage สำหรับข้อมูลที่ไม่ไวต่อความรู้สึกเท่านั้น เราขอแนะนำให้ใช้มันสำหรับสิ่งต่าง ๆ เช่นการตั้งค่าผู้ใช้การตั้งค่าและข้อมูลที่ไม่ไวอื่น ๆ เนื่องจากลักษณะของ API สาธารณะจึงไม่เหมาะสมสำหรับการจัดเก็บข้อมูลที่ละเอียดอ่อนเช่นรหัสผ่านหรือ PII
LocalStorage เป็น API เบราว์เซอร์ที่ให้คุณจัดเก็บข้อมูลในเบราว์เซอร์ ข้อมูลจะถูกเก็บไว้ในเครื่องบนอุปกรณ์ของผู้ใช้และไม่ได้แชร์ผ่านอุปกรณ์หรือเบราว์เซอร์ RemotEstorage เป็นไลบรารีที่รวม API LocalStorage เข้ากับเซิร์ฟเวอร์ระยะไกลเพื่อคงข้อมูลไว้ในเบราว์เซอร์และอุปกรณ์
remotestorage สามารถใช้งานได้โดยไม่ต้องรับรองความถูกต้องใด ๆ แต่เราขอแนะนำให้ใช้ JSON Web Tokens (JWT) เพื่อตรวจสอบสิทธิ์คำขอไปยังเซิร์ฟเวอร์ สามารถทำได้โดยการตั้งค่าตัวแปรสภาพแวดล้อม JWT_SECRET ใน .env เป็นความลับ JWT ของคุณสำหรับเซิร์ฟเวอร์ ดูเอกสารเซิร์ฟเวอร์สำหรับข้อมูลเพิ่มเติม
ยินดีต้อนรับคำขอดึงเสมอ โปรดทราบว่าหากคุณจะเสนอการเปลี่ยนแปลงที่รุนแรงตรวจสอบให้แน่ใจว่าได้เปิดปัญหาสำหรับการสนทนาก่อน สิ่งนี้จะช่วยให้มั่นใจได้ว่าการประชาสัมพันธ์ของคุณจะได้รับการยอมรับก่อนที่จะเริ่มทำงาน
สำหรับปัญหาที่มีอยู่ใด ๆ ที่ยังไม่มีผู้สนับสนุนที่ได้รับมอบหมายอย่าลังเลที่จะแสดงความคิดเห็นเกี่ยวกับปัญหาหากคุณต้องการทำงาน เราจะกำหนดปัญหาให้คุณถ้าเราคิดว่าคุณเหมาะสม
การเปลี่ยนแปลง: ใช้การแก้ไขข้อผิดพลาดหรือคุณสมบัติของคุณเขียนการทดสอบเพื่อครอบคลุมและตรวจสอบให้แน่ใจว่าการทดสอบทั้งหมดผ่านไป ตรวจสอบให้แน่ใจว่าการกระทำของคุณใช้ประโยชน์จากข้อความความหมายและข้อความการกระทำของคุณเป็นไปตามรูปแบบการกระทำทั่วไป จากนั้นเปิดคำขอดึงไปยังสาขาหลัก