我比较喜欢go语言,用go开发应用感觉比较好尤其在跨平台上有突出优点。但是go的缺点是没有一个好的UI框架,我想借用浏览器作为客户端,然后用html作客户端,通过websocket做通讯,在go后端和浏览器之间交互数据。说实话一直没有找到很好的框架,后来发现vue不错,用vue作前端就有组件之间交换数据的问题,用vuex会简化这这个过程。比如我在组件中改变状态,然后vuex就可以把这些改变发给websocket,然后go后端收到以后可以作处理,同理从go后端收取的数据也可以通过websocket发到vuex,然后由vuex分发到各个组件。
vuex的网站在https://vuex.vuejs.org/zh/,vuex中主要的概念是action和state,其中state存储数据,action就是方法,现在的思路就是在自己的组件中调用action改变state,然后在另外一个组件中设置watch,一旦state中数据改变了,就可以在另外一个组件中触发相关函数。
具体方法也很简单,
首先用vue-cli增加vuex插件。
其次在组件中增加compute和watch,在compute中用$store引入state中的变量,然后用watch监视这个变量,当发生改变时候就会自动调用watch中的函数。
最后要注意的是watch只能监视简单类型的数据,本来我是想把交互的数据直接作为监视类型的,但是总出问题,因此我建立int类型的flag,先在state中写好数据,然后监视flag的改变,flag发生改变后,另外一个组件就会从state中取出对应数据。代码如下:
state: { sendReqFlag:0, sendData:{}, },
组件中
computed:{ sendReqFlag () { return this.$store.state.sendReqFlag } },
watch:{ sendReqFlag (value) {
}
大概思路就是这样.