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的更多相关文章

  1. vue总结 08状态管理vuex

      状态管理 类 Flux 状态管理的官方实现 由于状态零散地分布在许多组件和组件之间的交互中,大型应用复杂度也经常逐渐增长.为了解决这个问题,Vue 提供 vuex:我们有受到 Elm 启发的状态管 ...

  2. 简单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 ...

  3. vue+vuex+axios+echarts画一个动态更新的中国地图

    一. 生成项目及安装插件 # 安装vue-cli npm install vue-cli -g # 初始化项目 vue init webpack china-map # 切到目录下 cd china- ...

  4. Vue(七)整合vue-router&Vuex&Axios

    整合vue-router&Vuex 先创建工程 vue create vue-axios 然后选择 勾选 回车,出现是否使用history mode?选择y,代表URL地址里面不会出现#.选择 ...

  5. vuex源码简析

    前言 基于 vuex 3.12 按如下流程进行分析: Vue.use(Vuex); const store = new Vuex.Store({ actions, getters, state, mu ...

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

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

  7. vuex复习方案

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

  8. iOS系列 基础篇 08 文本与键盘

    iOS系列 基础篇 08 文本与键盘 目录: 1. 扯扯犊子 2. TextField 3. TextView 4. 键盘的打开和关闭 5. 打开/关闭键盘的通知 6. 键盘的种类 7. 最后再扯两句 ...

  9. vuex 初体验

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

  10. vuex(1.0版本写法)

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

随机推荐

  1. 微信H5页面分享获取JS-SDK

    https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115  微信开发文档: 生成签名之前必须先了解一下jsapi_ti ...

  2. SPA项目开发之动态树+数据表格+分页

    SPA项目开发之动态树+数据表格+分页 动态生成NavMenu导航菜单(只支持2级菜单) <el-menu key="" index=""> < ...

  3. js之juery

    目录 JQuery 属性选择器: 操作标签 文本操作 属性操作 文档处理 事件 JQuery 属性选择器: 属性选择器: [attribute] [attribute=value]// 属性等于 [a ...

  4. docker compose yml 文件常用字段简介

    常用参数: version # 指定 compose 文件的版本 services # 定义所有的 service 信息, services 下面的第一级别的 key 既是一个 service 的名称 ...

  5. concurrent (二)AQS

    参考文档: https://www.cnblogs.com/waterystone/p/4920797.html

  6. SpringBoot整合MyBatis与MySql8.0

    一.前言 之前已经有一篇文章讨论过SpringBoot整合MyBatis,因而此篇不在重复累赘,本文主要是最新版的SpringBoot2.0与MyBatis.最新MySQL8.0整合过程中遇到的问题进 ...

  7. Kubeadm部署安装kubernetes1.12.1

    1.环境准备(这里是master) CentOS 7.6 两台配置如下,自己更改主机名,加入hosts, master和node 名字不能一样 # hostname master # hostname ...

  8. React-native 导航插件React Navigation 4.x的使用

    React-native 导航插件React Navigation 4.x的使用 文档 英文水平可以的话,建议直接阅读英文文档 简单使用介绍 安装插件 yarn add react-navigatio ...

  9. IE 浏览器设置 打开新的选项卡而不是弹出窗口

    首先打开IE的页面  找到工具 —点击Internet选项

  10. 【c# 学习笔记】c#委托是什么

    法庭上律师为当事人辩护,他真正执行的是当事人的陈词,律师就相当于一个委托对象,而当事人则委托律师对象为自己辩护. c#中的委托概念也就好比律师对象,它是一个类(“委托是类类型”这个事实将在“委托本质” ...