gpt4 book ai didi

vue.js - 使用 Vue.js 跨浏览器选项卡响应式 localStorage 对象

转载 作者:行者123 更新时间:2023-12-01 14:11:40 24 4
gpt4 key购买 nike

我正在尝试使 localStorage 对象具有反应性,这样如果它更新,它也会在使用同一对象的其他选项卡中更新。我正在使用 Vue.js 并尝试创建一个返回 localStorage 对象的计算属性,但这不起作用。我怎样才能使对象具有反应性并使其在其他浏览器选项卡中也能更新?

computed: {
localStorageObject() {
return JSON.parse(localStorage.getItem('object'));
}
}

最佳答案

@Matthias 有答案的开头,但它不会对其他选项卡中的更改使用react。为此,您可以处理 StorageEvent .这是您可以根据需要进行增强的粗略草图。

const app = new Vue({
el: '#app',
data: {
name: ''
},
methods: {
onStorageUpdate(event) {
if (event.key === "name") {
this.name = event.newValue;
}
}
},
mounted() {
if (localStorage.name) {
this.name = localStorage.name;
}
window.addEventListener("storage", this.onStorageUpdate);
},
beforeDestroy() {
window.removeEventListener("storage", this.onStorageUpdate);
},
watch: {
name(newName) {
localStorage.name = newName;
}
}
});

关于vue.js - 使用 Vue.js 跨浏览器选项卡响应式 localStorage 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52780694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com