这篇文章主要为大家详细介绍了vuex提交state&&实时监听state数据的改变方法,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
websocket长连接 根据指示进行四个页面之间的跳转,在各页面执行相应的逻辑处理。
【图片暂缺】
在四个页面外面写个父页面,router路径如下所示:
【图片暂缺】
//存储到vuex里面
代码如下:
[WEBSOCKETDATA](state,socketdata){
state.socketData=null;//vue监听不到数组的改变 所以清空重置一下就好咯
state.socketData=socketdata
}
代码如下:
export default {
getterSocketData (state) {
return state.socketData
}
}
代码如下:
import Vue from 'vue'
import Vuex from 'vuex'
import mutations from './mutations'
import getters from './getters'
代码如下:
const state = {
socketData:{},//websocket数据
}
export default new Vuex.Store({
state,
mutations,
getters
})
父页面
代码如下:
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);
},
}
子页面 根据websocket传来的数据进行逻辑操作
代码如下:
import {mapState,mapMutations,mapGetters} from 'vuex';
export default {
data(){
return{
prolength:0,
defaultImg: 'this.src="' + require('../assets/defaultImg.png') + '"',
productinfos: {
"current_item": "111", "show_item": 'false', "cart_item_list": [],"totalPrice":7.5,"delIndexList":[],'addList':[]
},
MyMar:'',
}
},
computed: {//监听socketData的变化 做页面处理
...mapState([
'socketData',
]),
...mapGetters([
'getterSocketData',
])
},
watch:{
getterSocketData(message){//message 就是socketData
console.log(message);//根据数据指示 进行逻辑操作
........................
}
}
}
以上这篇vuex提交state&&实时监听state数据的改变方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持四海网。
本文来自:http://www.q1010.com/184/6222-0.html
注:关于vuex提交state&&实时监听state数据的改变方法的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:vue.js
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。