刚学过vuex,现在自己做了个电商小项目准备用下vuex,于是我就想说到把购物车的商品放vuex里边,方便不同组件调用到购物车里边的数据,但是实际项目中,我想了下又感觉vuex没什么用,原因如下:
当我们点击加入购物车的时候,肯定要把需要加入购物车的商品传给后台呀。那我们进入到购物车组件里边,直接从后台调取数据不就直接可以看到购物车的商品?根本没必要把需要加入购物车的商品传给vuex呀。(当然有一种可能就是传给vuex,可以直接读取,不用再调用后台数据。)
是我vuex用在购物车上本来就是错的?那我可以用在什么地方,举几个例子
在使用库或框架时,需要注意一个「适用性」的问题。
Vuex 或者说实现了 Flux 思想的库,解决了几个问题:
为什么要解决这样的问题呢?其实是因为当程序逻辑过于复杂的时候,非中心化的数据管理会让整个 app 的逻辑非常混乱。
举一个不使用中心化的数据管理机制的具体例子:
一个 app ,有四个 tab,每个 tab 都需要读取用户的资料。如果数据在每个 tab 的控制器里(或者说组件里)都存了一份,那么在用户手动更新了用户资料之后,就需要在每一个 tab 里都更新一遍用户资料,才能保证用户看到的永远是最新的资料。
如你问题里所说,我每进一个 tab 的时候重新请求一下不就好了吗?
这样的解决方案不是不可以,但弊端也非常明显:
另外单项数据流的好处也很明显,Vue 的作者在知乎上回答过,我就不摘抄了。(地址:https://www.zhihu.com/questio...)
你问题中的场景,业务过于简单,确实是没有必要使用 vuex 的,但这不代表其他大型应用不应该使用这个框架。
以上。