Vuex是什么?
vuex是一个专为vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态
以一种可预测的方式发生变化。
说白了,Vuex就是一个全局单例模式管理。在该模式下,组件树构成了一个巨大的“视图”,不管在树的哪个位置,任何组件都能获取状态或者触发行为。
来看看这张图
- state,驱动应用的数据源;
- view,以声明方式将 state 映射到视图;
- actions,响应在 view 上的用户输入导致的状态变化。
- mutations, actions通过commit导致的突变
在vue.js中,数据是双向绑定的,可以直接修改state,而在vuex中,无法直接修改state,只能通过dispatch个Actions或者commit个Mutations来修改数据,这样修改路径会变长,但这带来的好处就是数据修改可预测,并且更方便管理。
使用VUEX通常是为了解决以下两种问题:
- 多个视图依赖于同一状态。
- 来自不同视图的行为需要变更同一状态。
1、当应用比较复杂,数据被许多组件共享,而这些组件或许是兄弟组件或者是关联度很低的组件,在这时候,数据的共享就变得比较困难。
2、路由间的复杂数据传递,遇到一些路由跳转场景,传递的参数很复杂的时候,用Vuex传递数据也是很不错的解决方案。