Vuex笔记

定义:vue全局状态管理器
(在任意组件/页面都可以访问vuex的数据)
(当数据更新的时候,引用vuex的组件视图会自动更新)

export default new Vuex.Store({


state:{

定义数据

Ps:user:{ math:1}
$store.state 组件中访问

}

getters:{
计算数据

Ps:gold(state){
return  state.math +1
}
$store.getter 组件中访问
}

mutations:{

修改数据  
类似组件中的methods
mutation是修改state数据的唯一方法
mutations中的方法 按照国际惯例大写

$store.commit 组件中访问

 Ps: ADD(state(原数据) ,data=100(要传入/更改的数据)){
state.math=data (更改state中的数据)

}

}

actions:{
异步操作 
与后端接口放在actions中
$store.dispatch 组件中访问

PS:setScore(context, data) {
context相当于组件中的$store,$store代表整个vuex,整个仓库
 

               context.commit 调用mutations方法

               context.dispatch 调用actions 方法

               context.state 状态

               context.getters 获取器

  // 模拟异步操作

 setTimeout(() => {

   // 调用mutations

   context.commit("ADD",data)

   },2000)

}

 引入模块  import  模块名  from 路径
modules:{
模块
模块名
}


})

vuex的映射方法

01导入:
import { mapState,mapGetter ,mapActions,mapMutations} from "vuex"


02使用:
在computed去计算
computed:{
映射带模块cart
..mapState({
goods:state=>state.cart.goods

不带模块   ...mapState([''userinfo''])
})

}

03在组件中使用
<p>{{goods}}</p>

<p>{{userinfo}}</p>
其余如此(mapGetter ,mapActions,mapMutations)


vuex中的state与getter映射为组件的data数据
vuex中的actions和mutations映射为组件methods方法




 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值