监听挂在 window 对象上某一个变量的改变

Vue的watch选项并不能直接监听window对象上的属性变化。

我们首先在Vue实例的created钩子中使用window.addEventListener方法监听了一个自定义事件DetailDataChange。然后,在函数GETMessageFromUE中,我们更新了window.DetailData的值,并通过window.dispatchEvent方法触发了DetailDataChange事件。当window.DetailData发生改变时,监听器会触发并执行对应的处理逻辑。

  • 需要更新window上的变量时,通过window.dispatchEvent方法触发自定义事件。

    function GETMessageFromUE(data) {
      console.log("UE发消息了", data)
      window.DetailData = data;
      var event = new Event('DetailDataChange');
      window.dispatchEvent(event);
    }
    
    
  • 在Vue实例中,通过window.addEventListener方法监听一个自定义事件,例如DetailDataChange事件。

    var app = new Vue({
      created() {
        window.addEventListener('DetailDataChange', this.handleDetailDataChange);
      },
      methods: {
        handleDetailDataChange(newVal) {
          console.log('window.DetailData 发生变化:', newVal);
        }
      }
    });
    
posted @ 2024-02-18 16:41  聆听03  阅读(639)  评论(0)    收藏  举报