1. 在根目录下创建一个名为utils的文件夹,在文件夹中创建一个tool.js文件
// 重写setItem事件,当使用setItem的时候,触发,window.dispatchEvent派发事件
function dispatchEventStroage() {
const signSetItem = localStorage.setItem
localStorage.setItem = function(key, val) {
let setEvent = new Event('setItemEvent')
setEvent.key = key
setEvent.newValue = val
window.dispatchEvent(setEvent)
signSetItem.apply(this, arguments)
}
}
export default dispatchEventStroage;
2. 在main.js中引入使用
import tool from "@/utils/tool";
Vue.use(tool);
3. 在需要监听localstorage中数据变化的文件中加以下代码
window.addEventListener("setItemEvent",function(e){
//e.key : 是值发生变化的key
//例如 e.key==="token";
//e.newValue : 是可以对应的新值
if(e.key==="token"){
console.log(e.newValue);
_this.token=e.newValue;
}
})