Vuex的使用(八)——actions和mapActions的用法 - CSDN博客
文章推薦指數: 80 %
运行后点击mapActions按钮可以看到一秒后state发生了变化,这表示actions可以以异步的方式来调用mutations ...
Vuex的使用(八)——actions和mapActions的用法
讨厌走开啦
于 2021-09-0922:52:25 发布
1272
收藏
1
分类专栏:
Vue
文章标签:
vue.js
javascript
actions
mapActions
Vuex
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lqlqlq007/article/details/120194711
版权
Vue
专栏收录该内容
32篇文章
1订阅
订阅专栏
参考文档:https://vuex.vuejs.org/zh/guide/
actions功能与mutations相近,区别主要有以下两点:
actions不能直接改变state,只能通过调用mutation来改变state(mutations不能调用mutations,但是actions可以);mutations只能执行同步操作,而actions可以执行异步操作。
如果我们把state、getters、mutations和actions一股脑全部定义在一个文件里,会导致Vuex的定义文件非常臃肿,因此在下面的例子里我们尝试把actions拆出来。
首先需要单独定义actions(新增文件路径为src\store\action.js),代码如下:
exportdefault{
//context对象中包含state、commit和dispatch,分别对应Vuex中的state、执行mutations方法和执行actions方法
action1:context=>{
setTimeout(()=>{
context.commit("mutation1");
},1000);
}
};
然后在Vuex中引入并声明actions(修改文件路径为src\store\index.js),代码如下:
importVuefrom"vue";
importVuexfrom"vuex";
importactionfrom"./action";
Vue.use(Vuex);
conststore=newVuex.Store({
state:{
param1:"stateparam"
},
getters:{
param2:state=>{
return`new${state.param1}`;
},
//在getters中可以使用其他getters
param3:(state,getters)=>{
return`another${getters.param2}`;
},
//getter支持返回一个函数
param4:state=>index=>{
returnstate.paramArray[index];
}
},
//mutations不支持相互调用(如下面的mutation1不能调用mutation2)
mutations:{
mutation1:state=>{
//在mutations的回调函数内可以修改state的值
state.param1+="addsomething";
},
//mutations支持传递参数(第二个参数)
mutation2:(state,addString)=>{
state.param1+=addString;
}
},
actions:action
});
exportdefaultstore;
接下来在组件中引入并调用(新增文件路径为src\components\componentG.vue),代码如下:
stateinvuex:{{param1}}
讨厌走开啦
关注
关注
0
点赞
踩
0
评论
1
收藏
打赏
扫一扫,分享内容
点击复制链接
专栏目录
参与评论
您还未登录,请先
登录
后发表或查看评论
相关推荐
vuex2中使用mapGetters/mapActions报错的解决方法
10-17
主要介绍了vuex2中使用mapGetters/mapActions报错解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
vuex中mapActions用法详解
liweibo348的博客
12-29
7362
一般而言,我们使用this.$store.dispatch('xxx')来触发action操作,有多少action需要被触发,就需要写多少个this.$store.dispatch('')方法;
从而更加简便的方式出现了,他就是mapActions,mapActions就是将组件中的事件函数映射为对应的action,其中事件函数名称与action名称应该是一样的,写法如下:
mapAct...
vue中vuex的详解
热门推荐
关注最新技术问题并持续维护更新
04-26
4万+
概念
Vuex是一个专为Vue.js应用程序开发的状态管理模式。
它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
安装
HTML中使用script标签引入
使用全局的状态管理
Num:{{$store.state.num}}
//Actions异步处理
state中的平方{{vuex
vuex中的mapState、mapMutations、mapActions、mapGetters具体用法
guairena的博客
03-26
1576
vuex的映射语法
state(mapState)
之前的写法
computed:{
//获取state中三个值
data(){
returnthis.$store.state.data
},
data1(){
returnthis.$store.state.data1
},
data2(){
retur...
vuex中关于mapActions的作用
weixin_33672109的博客
10-07
2万+
mapActions工具函数会将store中的dispatch方法映射到组件的methods中。
和mapState、mapGetters也类似,只不过它映射的地方不是计算属性,而是组件的methods对象上。
我们来直接看它的实现:
exportfunctionmapActions(actions){
constres={}
normalizeMap(a...
vuexmapActions使用案例解析
caoxinjian423的博客
10-09
1089
store/index.js
importVuefrom'vue'
importVuexfrom'vuex'
Vue.use(Vuex)
exportdefaultnewVuex.Store({
state:{
msg:"HelloVuex!",
name:"cxj",
age:18,
hobby:"美女"
},
getters:{
tenYearsOld(state){
returnstate.age+1
...mapAction()的使用
Yetian_2000的博客
11-06
660
1.首先这个方法是写在methods里面
2…mapAction()这个方法返回store中action里面的对象,可以理解为展开运算符
3.在使用时…mapActions(‘template’,[‘createStaffItem’,]),传入参数代表什么意思:template是引入的是哪个store(可能定义了很多个store文件),createStaffItem表示action中的“createStaffItem”对象方法我映射到本组件的方法名叫“createStaffItem”。
4.
vuexActions和mapActions的使用
最新发布
树上骑个猴的博客
01-04
120
Actions存在的意义是假设你在修改state的时候有异步操作,vuex作者不希望你将异步操作放在Mutations中,所以就给你设置了一个区域,让你放异步操作,这就是Actions
store/index.js
conststore=newVuex.Store({
state:{
name:'张三',
number:0,
},
mutations:{
setNumberIsWhat(state,payload){
vue...mapActions()含义(es6剩余操作符)
包磊磊的博客
10-27
2万+
mapActions()返回的是一个对象,用了...扩展符后,才可以放进一个对象里,和其他组件内定义的method在同一个methods对象。
{
methods:mapActions()//如果没有其它组件内的定义的方法,可以这样写
}
{
methods:{
...mapActions(),//如果有
VUEX中关于mapActions,mapMutations使用解析
Jasons的博客
04-19
2万+
在项目中,经常使用到VUEX状态管理,对于小项目中,直接使用
this.$store.commit('mutaion-name','参数')
或者
this.$store.dispatch('actions-name','参数')
上述两种方法即可。
但是,当项目中的mutation或者action过多的时候,这样一个个的写就显得比较麻烦。
所以,vue提供了mapA...
vuex使用mapActions
qq719756146的博客
04-16
348
在store.js书写actions方法
actions:{
demo({commit},options){
returnnewPromise((resolve,reject)=>{
ajax.post({
url:"xxxxxxxxxxx/xxxxxxxxxxx",
data:options
}).then((res...
11.组件中调用Vuex的state,getters,mutations,actions,modules的数据传递、传参问题
扛麻袋的少年的博客
04-17
7718
博主为什么要总结标题的这些问题呢
1.因为在之前Vue2.0之前,面对小型前端单页面富应用(SPA)应用,都是使用localStorage等一些缓存等简单的方式来解决数据之间的传输问题。
面对相对大型的应用,使用上述localStorage等简单方法已经无法满足需求,所以需要使用到Vuex,可以更加方便的知晓页面之间具体的流向问题。
2.在学习到Vuex时,简单...
关于Vuex的action传入多个参数的问题
weixin_34302798的博客
02-22
1122
问题:
已知Vuex中通过actions提交mutations要通过context.commit(mutations,object)的方式来完成然而commit中只能传入两个参数,第一个就是mutations,第二个就是要传入的参数一开始遇到的问题是加入购物车方法中要传入一个字典对象里面保存产品信息item,还要传入一个产品数量的参数nu...
vue之...mapActions的使用
XiaoHuangDiLHD的博客
11-20
3万+
<button@click="add">+1</button>
actions:{
increment({commit}){
commit("INCREMENT")
},
decrement({commit}){
commit("DECREMENT")
...
VUEX中mapActions和mapMutations使用方法
LLDD2014425程序猿
05-06
1342
分享一个vuex的小知识:
使用vuex,修改状态用commit,或者dispatch,如this.$store.commit('user/age',10)
this.$store.dispatch('user/age',10)
也可以使用mapActions和mapMutations进行映射,
使用方法:
...mapActions({
stateChange:'user/upd...
【转】vue之...mapActions的使用
weixin_43222587的博客
04-15
282
点击这里,vue之…mapActions的使用
nodejs--vuex中mapActions
weixin_33966365的博客
03-14
73
mapActions()返回的是一个对象,用了...扩展符后,才可以放进一个对象里,和其他组件内定义的method在同一个methods对象。
{methods:mapActions()//如果没有其它组件内的定义的方法,可以这样写}{methods:{...mapActions(),//如果有其他定义的方法o...
vue-原创-《vuex的mapActions,用处和用法》
zdj5495的博客
12-07
1万+
通常,我们在vuex的actions中定义一个方法:
exportdefault{
vuexSetUserLogin({commit,state}){
commit("vuex_set_user_login",111);
},
vuexSetTest({commit},val){
commit("vuex_set_test",va...
©️2022CSDN
皮肤主题:技术黑板
设计师:CSDN官方博客
返回首页
讨厌走开啦
CSDN认证博客专家
CSDN认证企业博客
码龄15年
暂无认证
109
原创
1万+
周排名
6063
总排名
75万+
访问
等级
4335
积分
169
粉丝
186
获赞
66
评论
687
收藏
私信
关注
热门文章
gitsshkey配置
219252
webpack打包时提示Invalidconfigurationobject错误
78392
mac下查找文件完整路径
60977
git配置免密登录
40021
git多用户切换
38903
分类专栏
管理工具
2篇
mysql
1篇
shell
javascript
30篇
Vue
32篇
angularjs
19篇
nodejs
7篇
git
5篇
java
3篇
html5
4篇
css3
3篇
算法
4篇
IDE
1篇
企业微信
1篇
linux
2篇
架构设计
2篇
最新评论
gitsshkey配置
小小村长行军礼:
感谢博主无私奉献
前端项目运行时提示SyntaxError:TypeError:token.type.endsWithisnotafunction的解决方案
贤记火锅店:
“主干的项目可以成功运行,分支的却不行。
”我也一样
gitsshkey配置
莂說話や吻涐:
感谢
用animation实现无缝轮播图
讨厌走开啦:
当然可以,替换示例代码里的item1234的样式就行了。
用animation实现无缝轮播图
m0_65204097:
是只能这种纯色吗?可否轮播自己上传的图片?
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
javascript读取zip包内指定文件内容
nodejs模拟wss服务提示Thesubprotocol‘[objectObject]‘isinvalid.的问题分析
前端项目运行时提示SyntaxError:TypeError:token.type.endsWithisnotafunction的解决方案
2022年2篇
2021年16篇
2020年1篇
2019年37篇
2018年30篇
2017年16篇
2016年13篇
2014年1篇
目录
目录
分类专栏
管理工具
2篇
mysql
1篇
shell
javascript
30篇
Vue
32篇
angularjs
19篇
nodejs
7篇
git
5篇
java
3篇
html5
4篇
css3
3篇
算法
4篇
IDE
1篇
企业微信
1篇
linux
2篇
架构设计
2篇
目录
打赏作者
讨厌走开啦
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:--)
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1About us - MapAction
- 2Actions | Vuex
store.dispatch('xxx') , or use the mapActions helper which maps component methods to store.dispat...
- 3[Vue.js] Vuex 學習筆記(8) - actions 的核心概念
store.dispatch('xxx') 分發action,或者使用 mapActions 輔助函數將組件的methods 映射為 store.dispatch 調用。 import { ma...
- 4Mutations | Vuex
- 5Vuex的使用(八)——actions和mapActions的用法 - CSDN博客
运行后点击mapActions按钮可以看到一秒后state发生了变化,这表示actions可以以异步的方式来调用mutations ...