在vue中实现监听localstorage中某个键对应的值的变化

在根目录下创建一个名为utils的文件夹,在文件夹中创建一个localstorage.js文件

export default function tools () {
  const signSetItem = localStorage.setItem;
  localStorage.setItem = function (key, val) {
    const setEvent = new Event('setItemEvent');
    setEvent.key = key;
    setEvent.value = val;
    window.dispatchEvent(setEvent);
    signSetItem.apply(this, arguments);
  };
}

 

在main.js中引入使用

import storage from './utils/locaStorage';
Vue.use(storage);

 

在需要监听localstorage中数据变化的文件中加以下代码

// 监控locaStorage
    watchStorage () {
      const that = this;
      window.addEventListener('setItemEvent', function (e) { // 监听setitem的 key ,执行对应的业务逻辑
        console.log(e.key, e.value);
        if (e.key === 'isFullScreen') {
          if (e.value) {
            that.textAreaMix = 1;
            that.textAreaMax = 14;
            that.componentKey++;
          } else {
            that.textAreaMix = 1;
            that.textAreaMax = 1;
            that.componentKey++;
          }
        }
      });
    },

 

posted @ 2021-12-13 15:37  蔚京霖  阅读(2337)  评论(0编辑  收藏  举报