Skip to content

持久化数据

仲灏2022-01-13约 1 分钟

更良好的读取持久化数据

全局变量代理

做一个全局变量代理 放在运存中

这里全局变量举例 window._theme

  • js
    const getTheme = () => {
      return window._theme || window.localStorage.getItem('theme') || 'default'
    }
  • js
    const setTheme = (value) => {
      window.localStorage.setItem('theme': value)
      return window._theme = value
    }

监听localStorage变化

重写localStorage

jsx
var orignalSetItem = localStorage.setItem;
localStorage.setItem = function(key,newValue){
      var setItemEvent = new Event("setItemEvent");
      setItemEvent.newValue = newValue;
      window.dispatchEvent(setItemEvent);
      orignalSetItem.apply(this,arguments);
}
window.addEventListener("setItemEvent", function (e) {
    alert(e.newValue);
});
localStorage.setItem("name","wang");

讨论区

欢迎留下想法与补充