美文网首页
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