vuex里面的数据一般我们就不另辟蹊径了,直接就用state表示,state接下来就是vuex里面的数据代号了。
state一般都存储在一个叫store(仓库)里面,vuex要求我们是不能直接去修改store里面的state的,想要修改store里面的数据,我们要用到一个叫mutations的东西,这个mutations是我们自己定义的,vuex官方既然就叫它mutations,那我们也这么写好了(其实把它定义成 aaa bbb都可以,这里只是为了让跟我一样的小白万一看到了不要执着于为什么要这样叫),mutations里面放的是一些修改数据的方法,这些方法都是一些同步的操作(同步的操作:互不影响,我执行我的你执行你的,不存在谁要等谁先执行完了)
vuex里面还有一个表示动作的东西叫做actions(同mutations一样可以自己定义),在组件里面我们可以去分配要执行的动作,可以是异步操作,比如:在actions里面去向后台接口获取数据,完成以后在actions里面再去 提交 mutations的方法,达到修改state里面的某些数据。(加粗的‘提交’,这里涉及到一个翻译过来的方法叫 commit,例举一个简单的方法吧,这样说怕还是不够形象
)
getters —— 基于store里面的state去计算出各种不同类型的值,getters的作用可以理解为官方专门定义这个方法,用来整理项目中所有对state数据进行计算的小方法,不用getters也是可以写的,只不过用了代码结构看上去会更清晰。具体的写法如下:
当getters里面的方法很多的时候,那我们就需要在 .vue 的组件当中写很多的 this.$store.getters.xx (xx代表getters里面的方法) ,那重复写很多个这样的东西是很烦人的,于是vuex官方定义了 mapGetters这样一个东西,它的作用就是不用写辣么多同样的代码了,