Vuex官网链接:https://vuex.vuejs.org/zh-cn/strict.html

Vuex

  1. 是一个专为 Vue.js 应用程序开发的状态管理模式。
  2. 它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
  3. Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。
  4. 帮助我们管理新的共享状态
  5. 适合于开发大型单页应用

1.开始安装

在Vue-cli架构中 nmp  i  vuex  --save

在src下新建目录vuex/store.js

2.store.js配置

import Vue from 'vue';//引入vue
import Vuex from 'vuex';//引入vuex
Vue.use(Vuex);//全局使用 var state={ //
count:1
};
var mutations={
add(state,n){
state.count+=n
},
reduce(state){
state.count--
}
}
export default new Vuex.Store({//暴露出口
state,mutations
})

3.五大方法

    1.state

       用于数据管理,可以通过computed直接返出,也可以组件调用,也可以借助mapState()管理 

<template>
<div>
<h1>方法一:全局引入{{$store.state.count}}</h1>
<h1>方法二:computed引入{{count}}</h1>
<h1>方法三:mapState引入{{count1}}</h1>
</div> </template>
<script>
import store from"@/vuex/store";
import {mapState} from"vuex"
export default {
computed:{
count:function(){return this.$store.state.count},
...mapState(['count1'])
},
store
}
</script>
import Vue from 'vue';//引入vue
import Vuex from 'vuex';//引入vuex
Vue.use(Vuex);//全局使用 var state={ //
count:1,
count1:2
};
export default new Vuex.Store({//暴露出口
state
})

2. getter

    主要用于数据的过滤,直接通过computed调用,也可以mapGetters()

<template>
<div>
<h1>mapGetters引入{{count_get}}</h1>
</div>
</template>
<script>
import store from"@/vuex/store";
import {mapState,mapGetters} from"vuex"
export default {
computed:{
...mapGetters(['count_get'])
},
store
}
</script>
import Vue from 'vue';//引入vue
import Vuex from 'vuex';//引入vuex
Vue.use(Vuex);//全局使用
var state={ //
count:1,
};
var getters={
count_get(state){
return state.count+1
}
};
export default new Vuex.Store({//暴露出口
state,getters
})

 3.mutations

主要用于储存公共方法

直接mapMutations()调用或者commit提交以及传值

<template>
<div>
<h1>count的值{{$store.state.count}}</h1>
<h3>mapMutations方法: <input type="button" value="按钮1" @click=add></h3>
<h3>$store.commit()方法: <input type="button" value="按钮2" @click="$store.commit('reduce')"></h3>
<h3>传参方法: <input type="button" value="+10" @click="$store.commit('xx',10)"></h3>
</div>
</template>
<script>
import store from"@/vuex/store";
import {mapState,mapMutations} from"vuex"
export default {
methods:mapMutations(['add']),
store
}
</script> 
import Vue from 'vue';//引入vue
import Vuex from 'vuex';//引入vuex
Vue.use(Vuex);//全局使用
var state={ //
count:1,
};
var mutations={
add(state){
return state.count++
},
reduce(state){
return state.count--
},
xx(state,n){
return state.count+=n
}
}
export default new Vuex.Store({//暴露出口
state,mutations
})

  

 4.actions用于异步方法

<template>
<div>
<h1>count的值{{$store.state.count}}</h1>
<h1>mapActions的methods引入: <input type="button" value="+5 3s -1" @click="add1"></h1>
</div>
</template>
<script>
import store from"@/vuex/store";
import {mapState,mapMutations,mapActions} from"vuex"
export default {
methods:mapActions(['add1']),store
}
</script>
import Vue from 'vue';//引入vue
import Vuex from 'vuex';//引入vuex
Vue.use(Vuex);//全局使用
var state={ //
count:1,
};
var mutations={
add(state){
state.count+=5;
return state.count
}
};
var actions={
add1:function(context){
context.commit('add');
setTimeout(()=>{
state.count--
},2000)
}
}
export default new Vuex.Store({//暴露出口
state,mutations,actions
})

5.modules

  对于大型项目,进行模块化分组管理,store.js可以引入多个类似于store.js的文件,在总文件进行模块化状态管理

<template>
<div>
<h1>count的值{{$store.state.a.count}}</h1>
<h1>mapActions的methods引入: <input type="button" value="+5 3s -1" @click="add1"></h1>
</div>
</template>
<script>
import store from"@/vuex/store";
import {mapState,mapMutations,mapActions} from"vuex"
export default {
methods:mapActions(['add1']),store
}
</script>
import Vue from 'vue';//引入vue
import Vuex from 'vuex';//引入vuex
Vue.use(Vuex);//全局使用
var state={ //
count:1,
};
var mutations={
add(state){
state.count+=5;
return state.count
}
};
var actions={
add1:function(context){
context.commit('add');
setTimeout(()=>{
state.count--
},2000)
}
}
var moduleA={
state,mutations,actions
}
export default new Vuex.Store({//暴露出口
modules:{a:moduleA}
})

Vuex总结的更多相关文章

  1. 关于Vue.js 2.0 的 Vuex 2.0,你需要更新的知识库

    应用结构 实际上,Vuex 在怎么组织你的代码结构上面没有任何限制,相反,它强制规定了一系列高级的原则: 应用级的状态集中放在 store 中. 改变状态的唯一方式是提交mutations,这是个同步 ...

  2. vuex复习方案

    这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.

  3. vuex 初体验

    vuex是vue的状态管理工具,vue进阶从es6和npm开始,es6推荐阮一峰大神的教程. vuex学习从官方文档和一个记忆小游戏开始.本着兴趣为先的原则,我先去试玩了一把-->. Vuex ...

  4. vuex(1.0版本写法)

    Vuex 是一个专门为 Vue.js 应用所设计的集中式状态管理架构. 官方文档:http://vuex.vuejs.org/zh-cn/  2.0和1.0都能在此找到 每一个 Vuex 应用的核心就 ...

  5. 关于Vue vuex vux 文档

    01. vue 链接 http://vuejs.org.cn/guide/ 02. vuex  ----->>状态管理模块儿<<------- https://vuex.vue ...

  6. vuex

    英文:(Introduction)中文:https://github.com/vuejs/vuex/issues/176(贡献者努力中)

  7. Vue 2.0 + Vue Router + Vuex

    用 Vue.js 2.x 与相配套的 Vue Router.Vuex 搭建了一个最基本的后台管理系统的骨架. 当然先要安装 node.js(包括了 npm).vue-cli 项目结构如图所示: ass ...

  8. Vue2.X的状态管理vuex记录

    记住上述的顺序情况:想要改变state,只能通过Mutation,虽然action可以直接改变state,这样会使每个状态可以方便的跟踪和记录(用Devtools跟踪) vue Method   -- ...

  9. 在vue1.0遇到vuex和v-model的坑

    事情是这样的,在开发项目的过程中我使用了vuex并且在store中定义了一个保存用户信息的对象 userInfo : { 'nickName' : '', // 昵称 'password' :'', ...

  10. vuex 笔记

    Vuex 笔记 一个简单的状态管理 单一数据源: const sourceOfTruth = {} const vmA = new Vue({ data: sourceOfTruth }) const ...

随机推荐

  1. bzoj 1030 AC自动机+dp

    代码: //先把给的单词建AC自动机并且转移fail,然后d[i][j]表示构造的文章到第i位时处在字典树的第j个节点的不包含单词的数量,最后用总的数量26^m //-d[m][0~sz]即可.其中不 ...

  2. HTTP、TCP、 UDP、 IP 、 Socket的关系

    TCP和UDP协议是传输协议,IP是网络层协议.传输协议和网络层协议主要解决数据如何在网络中传输,或者说TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准.TCP负责发现传输 ...

  3. nova-conductor与AMQP(二)

    源码版本:H版 一.首先看服务的启动脚本 /usr/bin/nova-conductor import sys from nova.cmd.conductor import main if __nam ...

  4. [DeeplearningAI笔记]卷积神经网络3.1-3.5目标定位/特征点检测/目标检测/滑动窗口的卷积神经网络实现/YOLO算法

    4.3目标检测 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.1目标定位 对象定位localization和目标检测detection 判断图像中的对象是不是汽车--Image clas ...

  5. Dozer 对象的"搬运工"

    前言:项目中,经常会遇到各层对象之间相互进行值传递的过程,如在数据据持久层有一持久类EntityA,在视图层可能会变为ViewA,通常情况下,这两个类的属性 名称 .类型都是一致的,   在两个对象传 ...

  6. 2017 ACM-ICPC 西安网络赛 F.Trig Function Chebyshev多项式

    自己太菜,数学基础太差,这场比赛做的很糟糕.本来想吐槽出题人怎么都出很数学的题,现在回过头来想还是因为自己太垃圾,竞赛就是要多了解点东西. 找$f(cos(x))=cos(nx)$中$x^m$的系数模 ...

  7. 【NOIP】普及组2009 细胞分裂

    [算法]数论 [题解]均分的本质是A整除B,A整除B等价于A的质因数是B的子集. 1.将m1分解质因数,即m1=p1^a1*p2^a2*...*pk^ak 所以M=m1^m2=p1^(a1*m2)*p ...

  8. 爬行百度标题&URL案例

    思路: 先将需要获取的匹配出,然后可以用"永真"(即while True:)来遍历使得URL可以一直自增变化(百度点击下一页URL的pn参数就增加10)每增加10就爬行一遍URL然 ...

  9. APP版本号记录

    VoLTE版本: VT_BV0800V1.0.0B06 800M版本: NETARTIST_BV0800V1.0.0B01 看详细版本号:9831275#

  10. python基础===将Flask用于实现Mock-server

    from flask import Flask from flask import request, Response, jsonify import random import string app ...