mapAction-store中的异步方法

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
msg: 'Hello world',
count: 0
},
getters: {
reverseMsg(state) {
return state.msg.split('').reverse().join('')
}
}
mutations: {
increate(state, payload) {
state += payload
}
},
actions: {
// increateAsync(context, payload) {
// setTimeout(() => {
// context.commit('increate', payload)
// }, 2000);
// }
// 可以从 context 直接解构出来 { commit, dispatch, state, getters, rootGetters, rootState}
increateAsync({ commit, dispatch, state }, payload) {
setTimeout(() => {
commit('increate', payload)
}, 2000);
}
},
modules: {
}
})

vue组件

<template>
<div>
<p>count: {{num}}</p>
<p>msg: {{message}}</p>
<p>Normal-reverseMsg: {{$store.getters.reverseMsg}}</p>
<p>Getter-reverseMsg: {{reverseMsg}}</p>
<p>Rename-msgBeReversed: {{msgBeReversed}}</p> <!-- -------------------- Actions -------------------- -->
<button @click="this.$store.dispatch('increateAsync',2)">Actions</button>
<button @click="increateAsync(2)">Actions</button> </div>
</template>
<script>
import { mapState, mapGetters, mapMutations, mapActions } from 'vuex'
export default {
methods: { // --------------------------- Actions
// this.increateAsync() 映射到 this.$store.dispatch('increateAsync')
...mapActions(['increateAsync']),
//
// 如果是某一个module下的action,需要带上 namespace
// 格式: mapActions(namespace,[mutationName])
...mapActions('home', ['setHomeListAsync']),
...mapActions('home', { setListHomeAsync: 'setHomeListAsync' }),
},
computed: {
/**
相当于
num: state => state.count
message: state => state.msg
*/
...mapState({ num: 'count', message: 'msg' }),
/**
相当于
reverseMsg: getters.reverseMsg
*/
...mapGetters(['reverseMsg']),
/**
重命名,防止与组件内data数据冲突
相当于
msgBeReversed: getters.reverseMsg
*/
...mapGetters({ msgBeReversed: 'reverseMsg' }),
}
}
</script>

Vuex mapAction的基本使用的更多相关文章

  1. vuex中mapState、mapMutations、mapAction的理解

    当一个组件需要获取多个状态时候,将这些状态都声明为计算属性会有些重复和冗余.为了解决这个问题,我们可以使用 mapState 辅助函数帮助我们生成计算属性. // 在单独构建的版本中辅助函数为 Vue ...

  2. Vuex笔记

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 Vuex - 状态管理器,可以管理你的数据状态(类似于 React的 Redux) 一个 Vuex 应用的核心是 store(仓库,一个 ...

  3. Vuex入门(5)—— 为什么要用Action管理异步操作

    Action 类似于 mutation,不同在于: 1.Action 提交的是 mutation,而不是直接变更状态. 2.Action 可以包含任意异步操作. 官方给的定义我没什么意见,事实上我通过 ...

  4. 深度解析vuex

    1.什么是vuex? vuex 是一个专为 Vue.js 应用程序开发的状态管理模式(通俗一点的说Vuex就是存储数据的工具,类似于cookie.sessionStorage.localStorage ...

  5. Nuxt使用Vuex

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 基础知识这里不再重述,学习的话请自行到官网 ...

  6. VueX源码分析(2)

    VueX源码分析(2) 剩余内容 /module /plugins helpers.js store.js helpers要从底部开始分析比较好.也即先从辅助函数开始再分析那4个map函数mapSta ...

  7. VUEX 总结

    What is Vuex? vuex是一个专为Vue.js应用程序开发的状态管理模式.他采用集中式储存管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变换 VUEX并不限制你的代 ...

  8. Vue + Vuex 简单使用

    我们要实现的很简单,就是点击+1的count加一,点击-1的时候count-1 一.mutation 在vue 中,只有mutation 才能改变state.  mutation 类似事件,每一个mu ...

  9. 说一说Vuex有哪几种状态和属性

    vuex的流程 页面通过mapAction异步提交事件到action.action通过commit把对应参数同步提交到mutation mutation会修改state中对应的值.最后通过getter ...

随机推荐

  1. 面试软件测试工程师——盘点HR的那些黑话

    当疫情过后,应该有很多测试实习生寻找测试岗或者已从业测试岗的群体进行跳槽:最近也收到很多测试新生的咨询,在这里简单分享一下!老铁们走起!今天在这里就简单做跟大家聊一聊面试过程中你与面试官/HR聊天过程 ...

  2. There are unfinished transactions remaining. Please run yum-complete-transaction as root.

    问题:CentOS  运行软件更新时,提示如下错误. 解决办法: 在终端界面,运行   sudo yum-complete-transaction.

  3. 产品升级前后MD5码对比

    在做产品测试的时候,经常会需要对比升级前后的MD5码,这时可以通过终端登录设备,具体步骤如下: 1.在升级前时,将MD5码写入log1.info文件: check_md5 -d / -w log1.i ...

  4. Shell基本语法---处理海量数据的awk命令

    awk命令 其实是一门编程语言,支持条件判断,数组,循环等功能,与grep,sed被称为linux三剑客 之所以叫AWK是因为取其三位创始人 Alfred Aho,Peter Weinberger, ...

  5. 关系型数据库查询语言 SQL 和图数据库查询语言 nGQL 对比

    摘要:这篇文章将介绍图数据库 Nebula Graph 的查询语言 nGQL 和 SQL 的区别. 本文首发于 Nebula Graph 官方博客:https://nebula-graph.com.c ...

  6. 关于页面布局中,如何让一个div水平和垂直居中的五个方案

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Python编程导论第2版|百度网盘免费下载|新手学习

    点击下方即可免费下载 百度网盘免费下载:Python编程导论第2版 提取码:18g5 豆瓣评论: 介绍: 本书基于MIT 编程思维培训讲义写成,主要目标在于帮助读者掌握并熟练使用各种计算技术,具备用计 ...

  8. python基础--14大内置模块(上)

    python的内置模块(重点掌握以下模块) 什么是模块 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类 ...

  9. IO—》File类

    IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据 ...

  10. 【算法】题目分析:Aggressive Cow (POJ 2456)

    题目信息 作者:不详 链接:http://poj.org/problem?id=2456 来源:PKU JudgeOnline Aggressive cows[1] Time Limit: 1000M ...