什么是Vuex?


Vuex是一个专门为Vuejs开发的状态管理模式,它采用集中式存储管理应用的所有组件状态,然后巴拉巴拉…

好了,用概念来解释概念那是大佬做的事,Vuex说白了就是一个保存多个组件的公共变量(你可以暂时把状态理解为变量)的一个对象,把这个对象封装在顶层的Vue实例中,以后不管哪个组件想用这些变量,都可以直接从中获得,或者是向其中写入新变量。

为什么要有这个东西呢?倘若现在你开发了许多个组件,组件1中的有些数据 组件2,3,4,5,6等等也需要使用,那么你准备怎么把这些数据传给它们?父子间通信?那如果这些组件的关系不是父子那么简单呢?在一个组件树里面,如果层数很高的组件向低层组件传数据,难道还要麻烦的一步一步传递?

这时你就会体会到Vuex的好了。

当然,你可能会觉得实现Vuex这个功能并不难啊,创建一个保存公告信息的对象不就行了:

let shareobj = {}
Vue.prototype.shareobj = shareobj 

因为所有的组件包括Vue根实例都继承自Vue,因此只要Vue.prototype加入了shareobj,那么相当于所有的组件都能够使用这其中的数据,这不就行了吗?

哪有那么简单,事实上,Vuex还有一个最大的好处,那就是保存在Vuex中的数据都是响应式的,这保证了Vuex中的数据一旦发生更改,与之相关的所有数据都将监听到这个改动,并实时作出响应。

而用刚才那种prototype的方式,就不是响应式的了。

那么,说到这里,还要顺便提一句,什么样的状态适合保存在Vuex中呢?首先,并不是说只要组件共享的状态都需要保存在Vuex中,如果仍然是需要父子间通信就能获得的状态,那其实大可不必放在Vuex中,否则Vuex可能就会保存很多的状态导致不好管理,一般来说,那些需要在多个界面间共享的状态,比如用户的登录状态、头像、或者是商品收藏、购物车等适合保存在Vuex中。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值