同一个项目,同时打开两个页面,一个页面往vuex改变参数(this.$store.commit('xxx',true)),另一个页面在watch监听这个值,为什么会监听不到呢。。。。
在监听vuex页面尝试过下面这种,还是接收不到数据:
computed: {
aa() {
return this.$store.state.xxx
}
},
watch:{
aa(newVal){
console.log(newVal)
}
}
同一个项目,同时打开两个页面,一个页面往vuex改变参数(this.$store.commit('xxx',true)),另一个页面在watch监听这个值,为什么会监听不到呢。。。。
在监听vuex页面尝试过下面这种,还是接收不到数据:
computed: {
aa() {
return this.$store.state.xxx
}
},
watch:{
aa(newVal){
console.log(newVal)
}
}
了解一下mapGetters,mapState的使用,vuex结合watch就是多此一举的行为vuex的State
import { mapGetters, mapState } from 'vuex'
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
这是指开了两个浏览器选项卡?
跨页面了,代码跑在不同的进程,彼此是隔离的啊.
你得上跨页面通信机制.方案很多.
我通常使用第2点.操作localstorage时,已打开的同域页面都会收到storage事件.可以利用这一点进行通信.