Vuex总结
Vuex官网链接:https://vuex.vuejs.org/zh-cn/strict.html
Vuex
- 是一个专为 Vue.js 应用程序开发的状态管理模式。
- 它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
- Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。
- 帮助我们管理新的共享状态
- 适合于开发大型单页应用
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总结的更多相关文章
- 关于Vue.js 2.0 的 Vuex 2.0,你需要更新的知识库
应用结构 实际上,Vuex 在怎么组织你的代码结构上面没有任何限制,相反,它强制规定了一系列高级的原则: 应用级的状态集中放在 store 中. 改变状态的唯一方式是提交mutations,这是个同步 ...
- vuex复习方案
这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.
- vuex 初体验
vuex是vue的状态管理工具,vue进阶从es6和npm开始,es6推荐阮一峰大神的教程. vuex学习从官方文档和一个记忆小游戏开始.本着兴趣为先的原则,我先去试玩了一把-->. Vuex ...
- vuex(1.0版本写法)
Vuex 是一个专门为 Vue.js 应用所设计的集中式状态管理架构. 官方文档:http://vuex.vuejs.org/zh-cn/ 2.0和1.0都能在此找到 每一个 Vuex 应用的核心就 ...
- 关于Vue vuex vux 文档
01. vue 链接 http://vuejs.org.cn/guide/ 02. vuex ----->>状态管理模块儿<<------- https://vuex.vue ...
- vuex
英文:(Introduction)中文:https://github.com/vuejs/vuex/issues/176(贡献者努力中)
- Vue 2.0 + Vue Router + Vuex
用 Vue.js 2.x 与相配套的 Vue Router.Vuex 搭建了一个最基本的后台管理系统的骨架. 当然先要安装 node.js(包括了 npm).vue-cli 项目结构如图所示: ass ...
- Vue2.X的状态管理vuex记录
记住上述的顺序情况:想要改变state,只能通过Mutation,虽然action可以直接改变state,这样会使每个状态可以方便的跟踪和记录(用Devtools跟踪) vue Method -- ...
- 在vue1.0遇到vuex和v-model的坑
事情是这样的,在开发项目的过程中我使用了vuex并且在store中定义了一个保存用户信息的对象 userInfo : { 'nickName' : '', // 昵称 'password' :'', ...
- vuex 笔记
Vuex 笔记 一个简单的状态管理 单一数据源: const sourceOfTruth = {} const vmA = new Vue({ data: sourceOfTruth }) const ...
随机推荐
- 枚举工具类 EnumUtils
这是一个枚举工具类,有时候一个枚举自身为空,我们程序在调用他的方法时(如:name(),ordinal()),就会报空指针异常:下面写这个工具类就是为了来避免这些问题的,有些外部引用的没有贴出来,不过 ...
- Spring Boot + Swagger
前言: 在互联网公司, 微服务的使用者一般分为两种, 客户端和其他后端项目(包括关联微服务),不管是那方对外提供文档 让别人理解接口 都是必不可少的.传统项目中一般使用wiki或者文档, 修改繁琐,调 ...
- fmt:formatNumber use locale display negative currency in -$xxx.xx format in JSTL
First, we want to know our own locale,how to display the locale in a JSTL? <c:out value="${p ...
- 什么是Qt Widget?
Qt帮助文档如此解释: The user interface contains visual elements that are called widgets in Qt. Examples of w ...
- 【转】 虚拟机Linux不能上网简单有效的解决办法(NAT模式下)
前提条件: a. 确保VMware Network Adapter for VMnet8 处于启用状态,这个是NAT网络模式要用的虚拟网卡.注意这个网卡的IP地址,不需要做手动设置 b. 确保 VMw ...
- spring boot(一):入门
Spring Boot的优点 Spring Boot 是伴随着 Spring 4.0 诞生的,从字面理解,Boot是引导的意思,因此 Spring Boot 旨在帮助开发者快速搭建 Spring 框架 ...
- 使用TortoiseGit时如何实现SSH免密码登录
1. Git配置 连接GIT服务器使用的是SSH连接,因此无密码登录,需要使用公钥和私钥. 1) 生成公钥/私钥 在Git Shell中输入ssh-keygen命令,直接回车使用默认 ...
- js父页面和子页面相互取值
iframe子页面与父页面通信根据iframe中src属性是同域链接还是跨域链接,通信方式也不同. 一.同域下父子页面的通信 父页面parent.html <html> <head& ...
- Use of exceptionless, 作全局日志分布式记录处理
Download latest release of exceptionless on github and deploy on Window server, by default exception ...
- 网络抓包wireshark(转)
下载地址:https://www.wireshark.org/download/win64/ 抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过 ...