Kri*_* J. 0 local-storage vue.js vuejs2
我正在尝试使localStorage对象具有反应性,因此如果它更新,它也将使用同一个对象在其他选项卡中更新.我正在使用Vue.js并尝试创建一个返回localStorage对象的计算属性,但这不起作用.如何使对象具有反应性并使其在其他浏览器选项卡中更新?
computed: {
localStorageObject() {
return JSON.parse(localStorage.getItem('object'));
}
}
Run Code Online (Sandbox Code Playgroud)
@Matthias有一个答案的开头,但它不会对其他标签中的更改做出反应.要做到这一点,你可以处理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;
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
874 次 |
| 最近记录: |