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 应用的核心就 ...
随机推荐
- [冬令营Day1 T2]sequence
题目描述 Description 给一个长度为N的序列以及Q的询问,每次两个参数l,r,问你序列[l,r]中的最大连续和 输入描述 Input Description 一行二个正整数N,Q. 接下来一 ...
- no applicable action for [springProfile], current ElementPath is [[configuration][springProfile]]
今天down了一个开源项目,启动后一直存在如下错误信息: ERROR in ch.qos.logback.core.joran.spi.Interpreter@26:42 - no applicabl ...
- ant design pro 的modal
通常弹框位置有限,如果一行不下,就拆成两行,例如Table
- React / Ant Design Pro 实现Canvas画布实时自适应
如何实现canvas根据父容器进行自适应? Ant Design的组件都提供了强大的自适应能力,为了对齐父组件,镶嵌在Ant Design组件里的canvas也需要能根据父级容器进行自适应的能力,页面 ...
- Shell脚本之七 选择、循环结构
一.if else if 语法格式 if condition then command1 command2 ... commandN fi 写成一行(适用于终端命令提示符): if [ $(ps -e ...
- hive 批量添加,删除分区
一.批量添加分区: use bigdata; alter table siebel_member add if not exists partition(dt='20180401') locati ...
- 一台Linux服务器(4C8G配置)可以负载百万个连接?
一台Linux服务器可以负载多少个连接? 首先我们来看如何标识一个TCP连接?系统是通过一个四元组来识别,(src_ip,src_port,dst_ip,dst_port)即源IP.源端口.目标IP. ...
- Maven 教程(11)— Maven远程仓库的各种配置
原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79545408 1.远程仓库的配置 在平时的开发中,我们往往不会使用默认的中央仓库 ...
- | C语言I作业01
C语言I作业01 标签:18软件 李煦亮 1.1 你对软件工程专业了解是怎样? 对软件工程的了解是从人工智能频繁地出现在各大新闻,新闻报道了许多高校针对人工智能开设了相关课程或者专业,软件工程是开设的 ...
- [转帖]在 Kubernetes 离线部署 KubeSphere
在 Kubernetes 离线部署 KubeSphere https://kubesphere.io/docs/v2.0/zh-CN/installation/install-ks-offline/ ...