关于监听localStorage,求大神解答疑惑!

563 阅读1分钟

疑问

最近在使用vue3开发的时候,在遇到某个需求的时候,想监听localstorage里面的内容来做相应的处理,我之前在2版本的时候也是用过的方法是直接使用addEventListener,使用方式如下:

window.addEventListener("storage", (val) => {
  console.log(val.newValue);
});

但是不理解为啥放到vue3里面没效果,根本监听不到,啥效果都没有,有无大神可以解答一下我的疑惑?

另辟蹊径

上面那种方式不行,总不能放弃啊,于是就转变了一下思想,直接使用watch来监听吧!操作如下:

<template>
  <div>
    <button @click="rt">uu</button>
  </div>
</template>

<script setup lang="ts">
localStorage.setItem("test", "eee");
const test = ref<string | null>(localStorage.getItem("test"));

const rt = () => {
  localStorage.setItem("test", "hhh");
  test.value=localStorage.getItem('test')
  
};

watch(test,(val,old)=>{
  console.log(val,old);

})
</script>

最后

希望能有大神可以为我解答一下上面的疑惑,因为vue3我还没用的很顺手,有很多地方还有很多不懂的,谢谢了!