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); } } });