vuex的使用



提示:以下是本篇文章正文内容,下面案例可供参考

一、vuex是什么?为什么要用它??

它采用集中式存储管理,可以方便的进行数据的集中管理
每一个Vuex应用的核心就是store(仓库),store基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。

二、使用

二vuex的核心概念:store、state、getters、mutations、actions

  const store = new Vuex.Store({
   state,    // 共同维护的一个状态,state里面可以是很多个全局状态
   getters,  // 获取数据并渲染
   actions,  // 数据的异步操作
   mutations  // 处理数据的唯一途径,state的改变或赋值只能在这里
  })

三、访问方式

怎么访问数据嘞

访问state数据:$store.state.属性名
访问getters数据:$store.getter.计算属性名
调用mutations方法: $store.commit('方法名',实际参数)
调用actions方法:$store.dispatch('方法名')

三.模块访问 把vuex又分成小的模块

引入模块 import 模块名 from 路径

	modules:{
		模块
		模块名
			}

在computed去计算

computed:{
映射带模块cart
..mapState({goods:state=>state.cart.goods
不带模块   
...mapState([''userinfo''])
})
}

在组件中使用

<p>{{goods}}</p>
<p>{{userinfo}}</p>
其余如此(mapGetter ,mapActions,mapMutations)
vuex中的state与getter映射为组件的data数据
vuex中的actions和mutations映射为组件methods方法

调用模块

调用模块属性: $store.state.模块名.属性名
调用mutations方法:$store.commit('模块名/方法名',参数)
调用actions方法:$store.dispatch('模块名/方法名')

state模块

其中的state模块是用来定义和存放数据的,如果使用次数不多,可以使用$store.state.数据名去读取state中存放的数据;其中的store是Vuex模块的管理者,无论调用dispatch还是commit都需要store。多次使用建议用mapState引入,然后在computed中用…展开使用,mapState本身是一个函数,调用传递一个数组,要用哪像直接将名字写到数组里就行,他的返回值是一个对象,对象里存的就是想要用到的数据的计算属性使用:直接写this.数据名字就行;

actions模块

 actions模块用于响应组件中的动作一般代码的逻辑写在actions中,比如我需要点击一个按钮500毫秒以后提交给下一个模块操作,此时可以给commit操作写在一个定时器里面,500毫秒以后再调用commit方法;

mutations模块

 此模块用于修改state模块中的数据,actions模块调用commit方法就能直接将数据传到mutations模块中,mutations模块可以根据收到的数据,直接修改state模块中储存的数据;

getters模块

此模块用于对state的中存储的数据进行加工处理,有点类似于computed计算属性;

store模块

store如上原理图所示,是用于管理其它模块的,在调用dispatch和commit方法时,都需要使用$store;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值