疑问
最近在使用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我还没用的很顺手,有很多地方还有很多不懂的,谢谢了!