在同一个项目中,有两个屏幕主屏幕(A)和副屏幕(B);目前需求就是A的操作B能响应式的获取(并且后台不参与的情况),就像是Vue子组件之间使用Vuex;我使用了Vuex但是好像B无法响应式的获取A修改的state状态;然而我查到说可以使用PostMassage但是我没有操作出来;不知道是否还有其他办法或者PostMassage怎么才行得通
在同一个项目中,有两个屏幕主屏幕(A)和副屏幕(B);目前需求就是A的操作B能响应式的获取(并且后台不参与的情况),就像是Vue子组件之间使用Vuex;我使用了Vuex但是好像B无法响应式的获取A修改的state状态;然而我查到说可以使用PostMassage但是我没有操作出来;不知道是否还有其他办法或者PostMassage怎么才行得通
Vuex 的调用方式?
恩 ... 你这样的描述比较空洞
常见的方式譬如这样:
// store/index.js
state = { user: "123" };
mutations = { setUser(state, data){ state.user = data } };
// Page: A,
事件回调:
// 更新 state 的信息
setUser()
// Page: B,
watch:{
user(newVal){ ... },
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
问题描述模糊,屏幕(A)和屏幕(B)之间是什么关系,是父子关系,还是兄弟关系,还是没有关系(浏览器的两个标签)?
用页面描述比较好,如果页面A和页面B分属不同的vue实例,那使用vuex肯定是相应不到的,因为vuex实例也是分属不同的vuex,你可以理解为页面A和页面B运行环境都不一样(不同进程间怎么通信?)
而PostMassage可以实现窗口间(iframe)的数据通信,但是也是属于浏览器中的一个标签(同一个进程,top的windows是一个)
如果是浏览器的两个标签(两个进程)那就只能借助后台进行了