在使用Vue进行单面应用的开发时,经常会在各个组件间共享数据,比较简单的情况下,可以使用props和事件进行传递,但当应用逐渐复杂后,通过Props和事件就会使数据变得比较混乱了。这时需要通过vuex状态管理模式来管理各个共享数据的变化和操作。
Vuex介绍官方文档介绍:Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
借鉴了Flux、redux的基本思想,将状态抽离到全局,形成一个Store,以一个全局单例模式管理,在这种模式下,组件树构成了一个巨大的“视图”,不管在树的哪个位置,任何组件都能获取状态或者触发行为,通过定义和隔离状态管理中的各种概念并通过强制规则维持视图和状态间的独立性,让代码更具维护性和扩展性。
从以上介绍Vuex有点像全局对象,那和全局对象有什么差异呢?
Vuex的状态存储是响应式的,组件从store中获取数据,如果store有更新,会被高效的更新到组件中
你不能直接改变store中的状态,改变store中的状态的唯一途径就是显式地提交(