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 应用的核心就 ...
随机推荐
- twisted框架的使用和应用?
https://www.cnblogs.com/zhiyong-ITNote/archive/2017/08/14/7360442.html twisted网络框架的三个基础模块:Protocol, ...
- [codevs1286]郁闷的出纳员
题目描述 Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复 ...
- iview form表单数值类型校验「iview自定义form表单校验器」
摘录iview表单验证 Form 组件基于 sync-validator 实现的数据验证,给 Form 设置属性 rules,同时给需要验证的 FormItem 设置属性 prop 指向对应字段即可. ...
- three.js 设置透明度
原文:https://www.cnblogs.com/amy2011/p/6148736.html 材质: 材质就像物体的皮肤,决定了几何体的外表,例如是否像草地/金属,是否透明,是否显示线框等 Th ...
- [PHP] JQuery+Layer实现添加删除自定义标签代码
JQuery+Layer实现添加删除自定义标签代码 实现效果如下: 实现代码如下: <!doctype html> <html> <head> <meta c ...
- C++ CGI报“资源访问错误”问题分析
一线上CGI偶发性会报“资源访问错误”,经过分析得出是因为CgiHost没有读取到CGI的任务输出,即CGI运行完成后连HTTP头都没有一点输出. 然而实际上,不可能没有任何输出,因为CGI至少有无条 ...
- Kafka Rebalance机制分析
什么是 Rebalance Rebalance 本质上是一种协议,规定了一个 Consumer Group 下的所有 consumer 如何达成一致,来分配订阅 Topic 的每个分区. 例如:某 G ...
- 《Linux就该这么学》培训笔记_ch10_使用Apache服务部署静态网站
<Linux就该这么学>培训笔记_ch10_使用Apache服务部署静态网站 文章最后会post上书本的笔记照片. 文章主要内容: 网站服务程序 配置服务文件参数 SELinux安全子系统 ...
- kali 命令
1.添加用户 如下命令是用root执行的 adduser dong 会直接在/home 目录创建 dong 目录 2.将用户划分到某个组 gpasswd -a user group 3.ifconfi ...
- Learn About Git Bash
git是用来做版本控制的,在本节博客中,主要介绍git的下载,以及简单的配置 Version control is a system that records changes to a file or ...