08-Vuex
Vuex
一、简介
① 是什么:是一个状态管理工具,存放项目组件中的公共数据
二、使用语法
① 语法
-1. 创建 Vuex 实例
const store = new Vuex.Store({
state:{
// 用来存放组件公共数据
},
getters:{
// 用来过滤读取数据
方法名(state){
//...
}
},
mutations:{
//用来操作更新数据
方法名(state,数据1,....,数据n){
// 操作数据
state.键 = 操作
//...
}
},
actions:{
//也是用来更新数据,异步请求
方法名(context){
// 调用 mutations 中的方法
context.commit('方法名',数据1,....,数据n)
//...
}
}
})
-2. 激活 Vuex 和 使用语法
new Vue({
//激活
store,
//....,
methods:{
// 调用 Vuex 中 actions 方法
this.$store.dispatch('方法名')
// 调用 Vuex 中 mutations 方法
this.$store.commit('方法名')
},
computeds:{
方法名(){
// 使用 Vuex 中数据
return this.$store.state.键
}
}
})
###注意
① Vuex 中 actions 无法直接操作 state 数据,需要通过 mutations 操作
② 操作 mutations 中的方法 ,使用 commit(' 方法名 ')触发
③ 操作 actions 中的方法,使用 dispatch (' 方法名 ') 触发
三、辅助函数
① 语法( 在Vuex 库中)
--1. state 辅助函数: Vuex.mapState([ ' 键1 ',....,' 键n ' ])
--2. getter辅助函数:Vuex.mapGetters([ ' 方法名1 ',.....,' 方法名n ' ])
--3. mutation 辅助函数:
Vuex.mapMutations(['方法名1',....,'方法名n']) // 此时 普通函数方法名同数组里的值
或
Vuex.mapMutations({
键:值,
//...
})
// 此时 普通函数方法名为键名,值 为mutations中的方法名
--4. actions 辅助函数
Vuex.mapActions(['方法名1',....,'方法名n']) // 此时 普通函数方法名同数组里的值
或
Vuex.mapMutations({
键:值,
//...
})
// 此时 普通函数方法名为键名,值 为actions中的方法名
###注意:
-- 当辅助函数 参数 为 对象 或 数组 时,普通函数名的对应方式
四、模块化语法
① 定义阶段
const moduleA = {
state: { ... },
mutations: { ... },
actions: { ... },
getters: { ... }
} const moduleB = {
state: { ... },
mutations: { ... },
actions: { ... }
} const store = new Vuex.Store({
// 公共的
state
getters
mutations
actions // 单个模块的
modules: {
a: moduleA,
b: moduleB
}
}) //在new vue中激活
② 调用阶段
// 它们都是在computed
...mapState({
方法名: state => state.状态,
方法名: state => state.moduleA.状态,
方法名: state => state.moduleB.状态
}),
...mapGetters({
方法名: '方法名',
方法名: 'moduleA/方法名',
方法名: 'moduleB/方法名'
}) // 它们都是在methods
...mapMutations({
方法名: 'moduleA/方法名',
方法名: 'moduleB/方法名'
}),
...mapActions({
方法名: 'moduleA/方法名',
方法名: 'moduleB/方法名',
})
特此声明:如需转载请注明出处,如有疑问请及时提出以便于改正,如有侵权,联系删除,谢谢
08-Vuex的更多相关文章
- vue总结 08状态管理vuex
状态管理 类 Flux 状态管理的官方实现 由于状态零散地分布在许多组件和组件之间的交互中,大型应用复杂度也经常逐渐增长.为了解决这个问题,Vue 提供 vuex:我们有受到 Elm 启发的状态管 ...
- 简单vue项目脚手架(vue+webpack2.0+vuex+vue-router)
github地址 使用技术栈 webpack(^2.6.1) webpack-dev-server(^2.4.5) vue(^2.3.3) vuex(^2.3.1) vue-router(^2.5.3 ...
- vue+vuex+axios+echarts画一个动态更新的中国地图
一. 生成项目及安装插件 # 安装vue-cli npm install vue-cli -g # 初始化项目 vue init webpack china-map # 切到目录下 cd china- ...
- Vue(七)整合vue-router&Vuex&Axios
整合vue-router&Vuex 先创建工程 vue create vue-axios 然后选择 勾选 回车,出现是否使用history mode?选择y,代表URL地址里面不会出现#.选择 ...
- vuex源码简析
前言 基于 vuex 3.12 按如下流程进行分析: Vue.use(Vuex); const store = new Vuex.Store({ actions, getters, state, mu ...
- 关于Vue.js 2.0 的 Vuex 2.0,你需要更新的知识库
应用结构 实际上,Vuex 在怎么组织你的代码结构上面没有任何限制,相反,它强制规定了一系列高级的原则: 应用级的状态集中放在 store 中. 改变状态的唯一方式是提交mutations,这是个同步 ...
- vuex复习方案
这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.
- iOS系列 基础篇 08 文本与键盘
iOS系列 基础篇 08 文本与键盘 目录: 1. 扯扯犊子 2. TextField 3. TextView 4. 键盘的打开和关闭 5. 打开/关闭键盘的通知 6. 键盘的种类 7. 最后再扯两句 ...
- 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 应用的核心就 ...
随机推荐
- RabbitMQ六种队列模式-简单队列模式
前言 RabbitMQ六种队列模式-简单队列 [本文]RabbitMQ六种队列模式-工作队列RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主 ...
- 把antd的组件源码搬到Ant Design Pro中使用
把组件源码搬过来后,样式死活不生效,经过1天的努力,有说less-loader的,有说webpack配置,还有说babel配置的,最后,我自己找到了方法 就是在global.less中使用@impor ...
- Spring Cloud微服务安全实战_00_前言
一.前言: 一直以来对服务安全都很感兴趣,所以就学习.这是学习immoc的 jojo老师的 <Spring Cloud微服务安全实战课程>的笔记,讲的很好. 课程简介: 二.最终形成的架 ...
- sqlyog 下载
https://www.cnblogs.com/givemelove/p/7777975.html
- Hyperparameters
参数是机器学习算法的关键.它们通常由过去的训练数据中总结得出.在经典的机器学习文献中,我们可以将模型看作假设,将参数视为对特定数据集的量身打造的假设. 模型是否具有固定或可变数量的参数决定了它是否可以 ...
- Problem C. 欧皇 ————2019.10.12
题目: 再次感激土蛋 #include <bits/stdc++.h> using namespace std; typedef long long ll; ; ll C[][]; voi ...
- day 16
Weep no more, no sigh, nor groan. Sorrow calls no time that's gone. 别哭泣,别叹息,别呻吟:悲伤唤不回流逝的时光.
- Javascript报错Converting circular structure to JSON
主要是因为对象的互相引用,怎么样才能造成对象的互相引用呢? var a = {}; var b = {}; a.b = b; b.a = a; 怎么解决,反正我试了很多,最后选择深度clone thi ...
- Windows安装gmpy2
我在终端用python2的pip安装gmpy2时显示缺少Visual C++ 9.0 按照其要求,访问他给的网址安装一下 https://pypi.org/project/gmpy2/#files 进 ...
- 安装OpenIMSCore的SIP测试客户端 utcimsclient
环境 Ubuntu16.04,Vmvare12(win10). 下载 & 解压 //utcimsclient 下载地址 : https://liquidtelecom.dl.sourcefor ...