vuex是专为vue应用程序开发的状态统一管理库,它将组件的状态统一管理起来,从而方便的在不同的组件之间共享状态。
vuex有state、getter、mutation和action四大部件,每个部件都做自己特有的使用场景
state里面定义需要共享的状态数据,其他组件可以直接读取这个共享数据。它的特点在于只提供读取操作。
但是组件并非拿到state中的共享数据就可以直接渲染使用的,可能需要进行一些转换操作才可以使用,例如格式化等等。当然了组件可以自己在内部做处理,但如果有多个组件都需要处理,那在getter中定义统一的处理是比较好的方案。
state和getter中定义了可读的共享数据和处理后的数据,而mutation和action定义了可以修改共享数据的方法。
其中四大部件只有mutation可以直接操作修改state里定义的状态数据,action只能通过mutation来间接修改共享数据。
它们的区别在于,mutation里面必须是同步方法,而action里面可以执行异步方法,例如调用后端接口等等。