import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex); const modulesA = {
state:{//状态
count:100
},
getters:{//状态计算
addStr(state){
return state.count + '状态计算';
}
},
mutations:{
addNum(state,payload){//同步增加count数量
state.count += payload.count;
},
deleteNum(state,payload){//同步减少count数量
state.count -= payload.count;
}
},
actions:{
asyncAddNum({commit}){//模拟请求之后增加count数量
setTimeout(() => {
commit('addNum',{
count:1
})
},1000);
},
asyncDeleteNum({commit}){//模拟请求之后,减少count数量并返回Promise对象进行下一步回调操作
return new Promise((resolve,reject) => {
setTimeout(() => {
commit('deleteNum',{
count:10
});
resolve();
},1000);
});
},
async asyncDeleteAdd({commit,dispatch}){//模拟先请求其他actions请求,请求成功之后并在增加count数量
await dispatch('asyncDeleteNum').then(() => {
console.log('先异步减去10在回调加300');
});
commit('addNum',{
count:300
})
}
}
} const modulesB = {
state:{
count:200
}
} const vuexStore = new Vuex.Store({
modules:{
modulesA:modulesA,
modulesB:modulesB
}
}); export default vuexStore;
<template>
<div>
<span>测试</span>
<div>
<h3>state:{{getState}}</h3>
<h3>getters:{{getGetters}}</h3>
</div>
<div>
<button @click="addNum">同步提交mutations</button>
<!-- <button @click="addNum({count:10})">同步提交mutations</button>用mapMutations引入的mutations在调用这个方法的时候传参 -->
<button @click="asyncAddNum">异步请求actions</button>
<button @click="asyncDeleteNum">多个actions异步请求actions</button>
<button @click="asyncDeleteAdd">先异步在同步</button>
</div>
</div>
</template> <script> import {mapState,mapGetters,mapMutations,mapActions} from 'vuex'; export default {
name: 'vuexDemo',
data(){
return { }
},
computed:{
getState(){//获取状态
return this.$store.state.modulesA.count;
},
getGetters(){//获取状态计算
return this.$store.getters.addStr;
},
...mapState({
messageOne: state => state.modulesA.count,
}),
...mapGetters([
'addStr'
])
},
methods:{
addNum(){
this.$store.commit('addNum',{count:10});
},
asyncAddNum(){
this.$store.dispatch('asyncAddNum');
},
asyncDeleteNum(){
this.$store.dispatch('asyncDeleteNum');
},
asyncDeleteAdd(){
this.$store.dispatch('asyncDeleteAdd');
},
// ...mapMutations([//mapMutations参数写在调用方法的地方
// 'addNum'
// ])
// ...mapActions([//mapActions参数也写在调用方法的地方
// 'asyncDeleteAdd'
// ])
},
created(){
console.log(this.messageOne);
console.log(this.addStr);
// console.log(this.$store.state.modulesA.count);
}
}
</script> <style> </style>

vuex基础(vuex基本结构与调用)的更多相关文章

  1. Vuex 基础

    其他章节请看: vue 快速入门 系列 Vuex 基础 Vuex 是 Vue.js 官方的状态管理器 在vue 的基础应用(上)一文中,我们已知道父子之间通信可以使用 props 和 $emit,而非 ...

  2. vuex 基础:教程和说明

    作者注:[2016.11 更新]这篇文章是基于一个非常旧的 vuex api 版本而写的,代码来自于2015年12月.但是,它仍能针对下面几个问题深入探讨: vuex 为什么重要 vuex 如何工作 ...

  3. vuex基础知识总结

    项目中要求添加vuex,根据学习我这个小白总结了一点自己的心得,供大家参考 在学习之前,要知道两件事 为什么要用vuex?vuex要什么场景下应用? 简单点解释一下 1.项目中应用了vue脚手架之后, ...

  4. Vuex基础-Mutation

    借助官网的一张图,更改 Vuex 的 store 中的状态的唯一方法是提交 mutation.不可以直接对其进行赋值改变.需要注意的是,mutations只能做一些同步的操作. ​​​ 代码结构: ​ ...

  5. Vuex基础-Getter

    官方地址:https://vuex.vuejs.org/zh/guide/getters.html Vuex 允许我们在 store 中定义“getter”(可以认为是 store 的计算属性).就像 ...

  6. Vuex基础-State

    官方地址:https://vuex.vuejs.org/zh/guide/state.html 由于 Vuex 的状态存储是响应式的,从 store 实例中读取状态最简单的方法就是在计算属性中返回某个 ...

  7. vueX基础知识点笔记

    vuex是专门用来管理vue.js应用程序中状态的一个插件.他的作用是将应用中的所有状态都放在一起, 集中式来管理.需要声明的是,这里所说的状态指的是vue组件中data里面的属性.简单的来说, 它就 ...

  8. vuex基础详解

    vuex入门 安装 vuex为我们提供了两种使用方法 直接引入 vuex下载地址:https://unpkg.com/vuex@2.0.0 下载之后用< script >标签包裹引入即可 ...

  9. 前端vuex基础入门

    vuex简介 是一个专门为vue.应用程序开的状态管理模式 它采用集中式存储管理应用的所有组件的状态 (类似于全局变量) 并以相应的规则保证以一种可预测的方式发生改变(相应式变化) 应用场景 多个视图 ...

随机推荐

  1. eclipse下载安装

    1.下载 网址:https://www.eclipse.org/downloads/ 找到:eclipse-inst-jre-win64.exe 下载... 2.安装 找到-->Eclipse ...

  2. python paramiko实现ssh上传下载执行命令

    paramiko ssh上传下载执行命令 序言 最近项目经常需要动态在跳板机上登录服务器进行部署环境,且服务器比较多,每次完成所有服务器到环境部署执行耗费大量时间.为了解决这个问题,根据所学的执行实现 ...

  3. pdb的插拔测试

    pdb的插拔测试:将pdb从一个cdb中,插拔到另一个cdb中. 源端pdb unplug SQL> select instance_name from v$instance; INSTANCE ...

  4. LinkedList-常用方法以及双向链表的理解

    链表 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点包括两 ...

  5. 霍尔效应实验 execl数据处理

    execl 函数 =POWER() /*幂次*/ =ROUND() /*保留小数点后几位*/ =SQRT() /*开平方根*/ =POWER( x, 1/3 ) /*开立方根*/ =COUNTA() ...

  6. djago后台管理页面

    from django.contrib import admin from blogtest.models import * #修改网页title和站点header.+ admin.site.site ...

  7. 第七次Scrum Metting

    日期:2021年5月5日 会议主要内容概述:前后端对接,以及接下来的测试优化等工作. 一.进度情况 组员 负责 两日内已完成的工作 后两日计划完成的工作 工作中遇到的困难 徐宇龙 后端 测试数据模块和 ...

  8. AIApe问答机器人Scrum Meeting 4.27

    Scrum Meeting 3 日期:2021年4月27日 会议主要内容概述:汇报两日工作. 一.进度情况 组员 负责 两日内已完成的工作 后两日计划完成的工作 工作中遇到的困难 李明昕 后端 Tas ...

  9. UltraSoft - Alpha - Scrum Meeting 7

    Date: Apr 22th, 2020. Scrum 情况汇报 进度情况 组员 负责 昨日进度 后两日任务 CookieLau PM 完成课程中心的json格式传递 完成邮箱验证机制 刘zh 前端 ...

  10. JAVA实现表达式求导运算的分析总结

    1第一次作业 1.1题目描述 对形如4*x+x^2+x的多项式求导. 1.2类图 1.3度量分析 在完成第一次作业时,我的写法没有特别的"面向对象".唯一封装起来的是Node,代表 ...