vue中如何監聽localStorage值的變化

最近在做項目的時候想要根據本地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值的變化的方法了
如果這篇文章對你有幫助,或者在進行中遇到其他問題,歡迎評論區留言出來。
我們一起探討~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。