项目背景
websocket长连接 根据指示进行四个页面之间的跳转,在各页面执行相应的逻辑处理。
项目搭建结构如下所示:
解决方案
在四个页面外面写个父页面,router路径如下所示:
vuex
\src\store\mutations.js
//存储到vuex里面
[WEBSOCKETDATA](state,socketdata){
state.socketData=null;//vue监听不到数组的改变 所以清空重置一下就好咯
state.socketData=socketdata
}
\src\store\getters.js
export default {
getterSocketData (state) {
return state.socketData
}
}
\src\store\index.js
import Vue from 'vue' import Vuex from 'vuex' import mutations from './mutations' import getters from './getters'
Vue.use(Vuex)
const state = {
socketData:{},//websocket数据
}
export default new Vuex.Store({
state,
mutations,
getters
})
\src\components\index.vue
父页面
import {mapMutations,mapState} from 'vuex'
export default {
computed:{
...mapState([
'socketData',
])
},
data(){
return{
skip:'2',
webdata:{
"current_item": "111", "show_item": 'false', "cart_item_list": [],"totalPrice":7.5,"delIndexList":[],'addList':[]
},
}
},
mounted(){
// this.initWebsocket()
var addList=[{"sku":"1","num":"2","price":3.5,"name":'苹果0'}];
var delIndexList=[];
this.webdata.addList=addList;
this.webdata.delIndexList=delIndexList;
this.websocket_data(this.webdata)
console.log("index1--------------------")
console.log(this.socketData);
setTimeout(()=>{//定时器为了模拟websocket发送数据
var addList=[{"sku":"1","num":"2","price":3.5,"name":'苹果11'}];
var delIndexList=[0];
this.webdata.addList=addList;
this.webdata.delIndexList=delIndexList;
this.$store.commit("websocket_data",this.webdata)//必须写 要不然getter拿不到改变之后的数据
console.log("index--------------------");
console.log(this.socketData);
},1000);
},
}
src\components\shoppingCart.vue
子页面 根据websocket传来的数据进行逻辑操作
import {mapState,mapMutations,mapGetters} from 'vuex';
export default {
data(){
return{
prolength:0,
defaultImg: 'this.src="/UploadFiles/2021-04-02/defaultImg.png') + '">
以上这篇vuex提交state&&实时监听state数据的改变方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
标签:
vuex,state,实时监听
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
内蒙古资源网 Copyright www.nmgbbs.com
暂无“vuex提交state&&实时监听state数据的改变方法”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。

