一句话干掉状态管理,自定义本地缓存监听事件

472 阅读1分钟

自定义本地缓存监听事件, 可直接贴到浏览器控制台试

    const setItem = localStorage.setItem
    
    localStorage.setItem = function (name, value) {
        setItem.apply(this, arguments)
        var event = new Event('setItem')
        event.key = name
        event.value = value
        window.dispatchEvent(event);
    }
    window.addEventListener('setItem', function (e) {
        console.log(e.key)
        console.log(e.value)
    })

    setInterval(()=> {
        window.localStorage.setItem('aaa', JSON.stringify({a: Math.random()}))
    }, 3000)    

这个玩意不好用,目前不知道为啥监听不到 官方链接在developer.mozilla.org/zh-CN/docs/… 有知道的可以评论一下,谢谢

    window.addEventListener('storage', (e) => {
        console.log(e)
    });