Vue概念整理Day0114

Vuex 是一个状态管理模式,它采用集中式存储,管理应用的所有组件的状态,

这个状态自管理应用包含以下几个部分:

  • state,驱动应用的数据源;
  • view,以声明方式将 state 映射到视图;
  • actions,响应在 view 上的用户输入导致的状态变化。

 store 模式状态管理

任何时间,我们应用中的任何部分,在任何数据改变后,都不会留下变更过的记录。

为了解决这个问题,我们采用一个简单的 store 模式

----------------------------------------------------------------

1.什么是Store

  • Vuex就是提供一个仓库,Store仓库里面放了很多对象。其中state就是数据源存放地,对应于与一般Vue对象里面的data(后面讲到的actionsmutations对应于methods)。

  • 在使用Vuex的时候通常会创建Store实例new Vuex.store({state,getters,mutations,actions})有很多子模块的时候还会使用到modules

  • 总结,Store类就是存储数据和管理数据方法的仓库,实现方式是将数据和方法已对象形式传入其实例中。要注意一个应用或是项目中只能存在一个Store实例!!

-----------------------------------------------------------------------------

关于三个点(对象展开运算符):

...他是怎么混入到外部对象的呢? 
自己实验了一把: 
既然mapState是一个函数并且返回的是一个对象,那么就类似于

function fn(){return {a:1,b:c}}
  • 如果我直接写:
var test = {fn();}

必然是会报错的呀,这个时候就可以用到三个点…对象展开运算符(现处于 ECMASCript 提案 stage-3 阶段); 将fn()的返回值进行展开运算,但是…fn(),必须在一个外部对象里面执行 
如果var test = {...fn()}
得到的结果就是:
test= {a: 1, b: 2}
  • 就是把一个对象的key和value展开混入到另一个对象里面,由此想到对象的 深拷贝 ,如何将一个对象进行深拷贝的问题,又多出了一个答案:
var a ={id:1,user:'admin'}
//如何深拷贝a到b里面?
var b = {...a,info:'拷贝a的内容到b的对象里面',name:'快到碗里来'}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值