vuex是通过vue下载的一个插件,它可以创建一个对象,它是为了方便集中管理多个组件需要的“状态” ,可以理解将这个状态理解为是被处理过后的数据。
那为什么官方会给我配置一个这种vuex的插件呢?明明我们自己也可以通过父子通信获取数据,
因为当组件的关系不是父子的时候,而是隔着很多的层级关系例如下面这幅图
当你要从圆圈8中访问到1中的数据,那么会非常的麻烦。这个时候vuex就非常的好用了。它里面有个store函数,能够通过它new出一个对象,来储存多个组件需要的“状态”,但是如果仅仅是父子组件的话还是建议使用父子通信的方式来传递数据的,因为如果将所有的状态都放进这个对象进行管理的话,那么它后期将会便的很庞大,不便于管理。
vuex中的这些状态都是响应式的,可以在组件中动态的修改这些状态的。但是修改必须要遵守一个原则,那就是按照vue官方给出的流程图来修改。
组件必须通过Mutations去修改。在申请异步操作的时候可通过发出Actions再通过Mutations修改。
我们可以安装一个Devtools这个浏览器扩展插件去监听被修改的状态数据,方便后面调试错误。