vue中watch监听sessionstorage中值的变化

首先在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')
        })
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容