天天看點

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

如下圖所示,SAP 電商雲 UI,使用者的購物車 ID,持久化在浏覽器的 local storage 裡:

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

為什麼會觸發 State module 的加載?

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

并沒有直接用到 StateModule:

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

預設使用 local storage:

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

建立一個 subscription,自執行:

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

上圖代碼的邏輯:

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

unsubscribe 之後仍然可以 subscribe,為啥?

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

對于 interval 産生的 Observable 來說,可以被 unsubscribe.

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料
SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

代碼第 47 行的 storage 引用,來自函數 getStorage,從 winRef 擷取:

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

winRef 通過依賴注入生成:

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

winref 包含了 Spartacus 團隊針對 Document 的一個封裝:

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

直接利用 Angular 标準的 injection token 來檢測運作環境是浏覽器還是伺服器:

SAP Spartacus 如何使用 API 從浏覽器 local Storage 讀取資料

繼續閱讀