美文网首页
vue中watch监听sessionstorage中值的变化

vue中watch监听sessionstorage中值的变化

作者: 90后徐先生 | 来源:发表于2022-05-17 16:05 被阅读0次

    首先在main.js中给Vue.protorype注册一个全局方法,
    其中,我们约定好了想要监听的sessionStorage的key值为’isCollapse’,
    然后创建一个StorageEvent方法,当我在执行sessionStorage.setItem(k, val)这句话的时候,初始化事件,并派发事件。

     // vue 原型上挂载
        Vue.prototype.resetSetItem = function (key, newVal) {
            if (key === 'isCollapse') {
                // 创建一个StorageEvent事件
                var newStorageEvent = document.createEvent('StorageEvent')
                const storage = {
                    setItem: function (k, val) {
                        sessionStorage.setItem(k, val)
                        // 初始化创建的事件
                        newStorageEvent.initStorageEvent('setItem', false, false, k, null, val, null, null)
                        // 派发对象
                        window.dispatchEvent(newStorageEvent)
                    }
                }
                return storage.setItem(key, newVal)
            }
        }
    

    发出一个响应

     this.resetSetItem('isCollapse', true)
    

    如何监听一个响应状态?

     window.addEventListener('setItem', () => {
                this.newVal = sessionStorage.getItem('isCollapse')
            })
    

    相关文章

      网友评论

          本文标题:vue中watch监听sessionstorage中值的变化

          本文链接:https://www.haomeiwen.com/subject/qajnurtx.html