1. Vuex的5个核心属性是什么
- state、getters(类似于计算属性)、mutations(放同步的数据)、actions(放异步的数据)、modules(模块化)
下面我来比喻一下这几个属性的作用和用法
state 就好比是一个仓库 用于放各种东西
getters、mutations、actions、modules 和 state 相隔了一条河
他们每个上面都带了一座桥
mutations 的 桥 叫做 commit 同时是 state这个仓库的保镖 它的写法是mutations(state, "一个形参")每一个想要从state仓库里面拿东西的 都必须经过mutations
比如说 actions(context)它里面 想要拿东西 它就要 喊话 mutations 我需要一个 鸡腿 一杯可乐 mutations 听到之后就会 把commit放下去 actions 就会用 context.commit('这里放actions需要的 mutations里面的函数数据',) ,做完记录之后 actions就可以 拿到数据了 有些人 就说了 我不经过他不可以吗 我把它打跑 自己去随便拿
答案是可以的 但是拿的东西 可能会有错误或是 误差 比如想拿一个鸡腿 结果拿成了榴莲 getters 相当于是vip 只有在特殊需求的时候 才会被用到 比如当有人需要经常拿东西的时候 就像 大家都熟悉的 购物车 全选和反选 商品数量的计算和 总价格的计算 只要动了 就需要拿仓库里面的东西 这时候就需要用到 getters
modules 就用来划分区域的 到 仓库拿东西的太多了 mutations老大哥有点 忙不过来了 这时候 modules 就登场了 来自各地的 开始有序的站在相同需求的地方 mutations老大哥在各个模块放一个桥 开始登桥记录 井然有序
这就是属性之间 大致的传值方式
模块之前的传值方式 请听下回分解
第一次 用这种方式 写东西 比喻可能会有不恰当之处