簡體   English   中英

將localStorage包裝在angular2服務中?

[英]Wrapping localStorage in a angular2 service?

將本地存儲包裝在angular2中的服務中是否明智。 是否有任何爭論為什么要這樣做? 顯然,它更加整潔。 調用服務作為對組件的依賴項注入。 我看不到其他“優點”。

例如(服務中的本地存儲)

setHost(value: string) {
    localStorage.setItem(STATIC_VARIABLE_KEY, value);
  }

  getHost(): string {
    return localStorage.getItem(STATIC_VARIABLE_KEY);
  }

好主意的主要原因是,仍然有一些瀏覽器在私有模式下不支持localStorage ,並且通過使用這一抽象層,您可以在cookie不可用時簡單地將localStorage替換為cookie

例如,直到隱身模式下的MacOS Safari才支持最新的High Sierra版本。 移動Safari也存在此問題。 (我認為它在iOS 11上仍然存在,不確定。)

但是我建議您使用一些現成的解決方案,而不是從頭開始。 看一下這個模塊:

https://github.com/phenomnomnominal/angular-2-local-storage

這樣做的另一個原因可能是與服務器端渲染(通過角度/通用)兼容,因為localStorage在服務器端根本不可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM