export const initStroageEvent = () => {
// 保存原始的setItem功能
const original = localStorage.setItem;
// 对setItem进行扩展
// 1. 增加Event事件并派发
// 2. 执行原始的set功能
localStorage.setItem = function (key, value) {
// * 不支持IE:https://caniuse.com/?search=Event()
let event = new Event("localStroage");
event.key = key;
event.newValue = value;
window.dispatchEvent(event);
original.apply(this, arguments);
};
};
import { initStroageEvent } from "./utils.js";
initStroageEvent();
mounted() {
window.addEventListener("localStroage", function (e) {
console.log("localStroage", e.key, e.newValue);
});
},
methods: {
save() {
localStorage.setItem("name", "张三");
},
},