什么是Vuex全局状态管理
一句话来说,Vuex全局状态管理是任意组件之间的通信的解决方案
Vuex实现原理
- 借助于Vuex提供的单例,可供任意组件的调度
- 它里面提供了一些对应的状态和方法,比如 state, getter, mutation, action, modules…
组件通信
为了帮助大家更好的去理解,下面举例几种组件通信的情况
多级组件通信
如下图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/714baf4c1e1a490fbdf0952c52d2245d.png#pic_center)
1.组件App.vue想要给组件EmitterComponent.vue传值,那就需要使用Props进行属性传值,假如父组件给子组件传了data,子组件想要修改data的值,那就需要使用 $ emit自定义事件传值给父组件让其修改。简单来说就是“谁传值谁修改”
2.如果下面还有子组件,那从上往下传值需要一层一层的使用Props进行传值,从下往上也需要一层一层的使用 $ emit自定义事件传值。props和 $ emit自定义事件传值能满足大部分情况下的传值操作,但是有些情况会很麻烦
同级组件通信
如下图,只使用props和 $ emit 进行同级组件通信
![在这里插入图片描述](https://img-blog.csdnimg.cn/fa909415cb274ad7b6de309cec205a5a.png#pic_center)
1.下面两个组件想要进行通信的时候,就需要第一个组件先使用$ emit传值给父组件,再有父组件通过Prop传值给第二个组件。如果下面有很多层子组件的时候会非常的麻烦。、
使用Vuex进行组件通信
如下图,使用Vuex进行组件通信
![在这里插入图片描述](https://img-blog.csdnimg.cn/c405cd98f58b489abede7156f761d351.png#pic_center)
1.谁想要data的值都能直接访问Vuex实现,并且谁修改了Vuex中data的值进行了修改,都会进行一个监听,用过这个data的组件都会进行更新
所以Vuex的一个核心意义总结来说:我们可以把很多组件需要用到的一个属性抽离出来放到Vuex中作为一个全局的属性可供任意组件使用。
![在这里插入图片描述](https://img-blog.csdnimg.cn/e7552855025d4c70bcc31bda5fa2b951.png)
关注我,后面会继续为大家介绍,组件如何从Vuex中获取,修改值的一系列操作