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