首先,来看看vuex
官网对vuex
和全局对象两者的区别描述。
每一个
Vuex
应用的核心就是store
(仓库)。store
基本上就是一个容器,它包含着你应用中大部分的状态(state
)。Vuex
和单纯的全局对象有以下两点不同。
Vuex
的状态存储是响应式的。当Vue
组件从store
中读取状态的时候,若store
中的状态发生变化,那么相应的组件也会相应地得到高效更新。- 你不能直接改变
store
中的状态。改变store
中的状态的唯一途径就是显示地提交(commit)mutation
。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。
vuex
用于做状态管理,主要是应用于vue.js
中管理数据状态的一个库,通过创建一个集中的数据存储,供程序中所有组件访问,实现组件之间的传值。并且一个组件的数据变化会映射到使用这个数据的其他组件。vuex
由统一的方法修改数据,全局变量可以任意修改。- 全局变量多了会造成命名污染,
vuex
不会,同时解决了父组件与孙组件,以及兄弟组件之间通信的问题。