绝尘kinoko
2019-05-29 13:58
我类比了一下Vuex与Linux的管道和Websocket,感觉上有一点类似的地方:
-都是有一个共享资源;
-主要包括消息接收与发送两个部分;
ws负责的是服务端与客户端之间的通信,Vuex负责的是Vuex.js与各组件之间的通信。
但是这么一来store里面的对象为什么不是data,而是state,这么想岂不是当成了全局变量;
而且如果只是为了实现在info里面add,在about里面数字++的效果,Vue里面应该有更方便的消息传递机制才对,而不是通过中转来实现。
还请老师和各位热心的朋友们看一下我的理解是否有问题。
你可以看看vuex的概念,如果把state单纯当成是全局变量是不对的。
1. vuex不单纯是起到了“全局变量”的作用
它加入了单向数据流的机制,所以如果是单纯的全局变量,所有人都能改,那就乱套了不是。
store里面的state,只能通过mutations来改。
而且加入了一些新的特性,比如actions(异步),getters(计算属性),这些在实际的项目中,都是非常好用的。
2. 组件间的通信方式还有很多种,选择合适项目本身的才最重要
谢谢老师的回复,我弄明白了:
1,action里面是用来写commit的,这些在课程中被写在了组件的函数里,getters相当于computed;
2,Vuex是取代Props这种父子组件传值,且弥补兄弟组件传值手段的方法。
3小时速成 Vue2.x 核心技术
82572 学习 · 489 问题
相似问题