在main.js中给Vue.protorype注册一个全局方法

Vue.prototype.$addStorageEvent = function (type, key, data) {
  if (type === 2) {  //type为2时执行下面的方法
    // 创建一个StorageEvent事件
    var newStorageEvent = document.createEvent('StorageEvent');
    const storage = {
      setItem: function (k, val) {
        localStorage.setItem(k, val);
        // 初始化创建的事件
        newStorageEvent.initStorageEvent('setItem', false, false, k, null, val, null, null);
        // 派发对象
        window.dispatchEvent(newStorageEvent);
      }
    }
    return storage.setItem(key, data);
  } 
}

存值

	this.$addStorageEvent(
		2,
		"menuList",
		JSON.stringify(data.menuList || "[]")
		);

获取变化

	window.addEventListener("setItem", () => {
		this.newVal = JSON.parse(sessionStorage.getItem("menuList"));
	});
Logo

前往低代码交流专区

更多推荐