美文网首页
vue中如何监听localStorage值的变化

vue中如何监听localStorage值的变化

作者: 最进 | 来源:发表于2023-06-07 13:42 被阅读0次

最近在做项目的时候想要根据本地localstorage里面个别值得变化来做一些事情,就比如监听locale(这是我做国际化需要使用的变量)。

思路:重写localStorage的setItem方法。

当我们在调用 setItem 方法的时候,添加new Event('setItemEvent'),再使用window.dispatch() 方法派发事件,就可以通过 window来监听当前事件

/src/plugins/locale.js

export default function dispatchEventStroage () {
  let signSetItem = localStorage.setItem
  localStorage.setItem = function (key, val) {
    let setEvent = new Event('setItemEvent')
    setEvent.key = key
    setEvent.newValue = val
    window.dispatchEvent(setEvent)
    signSetItem.apply(this, arguments)
  }
}

main.js

import tool from '@/plugins/locale'
Vue.use(tool)

suibian.vue

<script>
mounted() {
  window.addEventListener('setItemEvent', (e) => {
    console.log(e)
  })
}
</script>

以上就是vue中如何监听localStorage值的变化的方法了
如果这篇文章对你有帮助,或者在进行中遇到其他问题,欢迎评论区留言出来。
我们一起探讨~

相关文章

网友评论

      本文标题:vue中如何监听localStorage值的变化

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