请教一下,Vue 怎么监听localStorage的值?
发布于 2个月前 作者 2183889 918 次浏览 来自 问答

我在localStorage存了个值,要监听这个值的变化调用事件,watch里应该怎么写?不用vuex

localStorage: function(newVal, oldVal) {
      console.log("watch", window.localStorage);
     this.initData();
     }

这么写不对

2 回复

data中先存放localStorage中的值, watch data中你存值的那个变量 因为watch只能观察vue实例上的string | Function | Object | Array

在main.js里面配置一下。 var oriSetItem = localStorage.setItem; localStorage.setItem = function (key, value) { //这里抛出自定义事件 if (key && key === ‘commodity’) { var event = new Event(“setItemEvent”); event.newValue = value; window.dispatchEvent(event); console.log(‘切换品种’ + value); } //实现原方法 oriSetItem.apply(this, arguments); } 通过这个去监听 window.addEventListener("setItemEvent", function (e) { console.log(‘socket, 发送消息request:’ + e.newValue); socket.emit('request’, e.newValue); subscribe(e.newValue); }); 这是个例子,具体你需要怎么操作,你自己需要写

回到顶部