要点:
状态即数据,我们之前做过的案例todolist里面的todos和github案例的users都是数据也是状态
在这边我们实现使用全局事件总线实现,数据的读,也就是a组件的信息大家都要用,都进行读取
a组件为发送方,其他组件为接收方
也就是在a中进行对事件的解绑带参:this.$bus.$emit('事件名',数据)
而在其他要读取a组件里面值的组件里要写对事件的定义,this.$bus.$on('事件名',回调)
而这边完成了对数据的写操作,也就是a组件中的值要被进行修改
其实就是与前面读操作相反 即a组件为接受方(接受其他组件的数据对a组件的数据进行修改操作)而其他组件为发送方,发送数据
也就是说要在a组件中绑定事件,即this.$bus.$on(''事件名".回调)
在其他组件中进行解绑事件,即this.$bus.$emit('事件名',数据)
从图中我们也不难发现,这里的x实现了对其他组件的读写操作,相当于x为多组件的共享数据,而我们这边用数据总线来进行一个共享数据的实现,其实是有点麻烦有点乱的,这边组件还不多,但是如果有10多个组件要实现共享数据,那么就太麻烦了,
然后我们用vuex来实现
首先vuex不属于任何一个组件,当你觉得一个数据需要被多个组件使用时,就把这个数据放入vuex里作为共享数据,而且这边是双向箭头,也就是说,可以完成数据的读写,拿a组件举例,只要a组件里调用api就能实现vuex里面数据的改变,而且也能读取vuex里面的数据有共享的概念