Store-状态管理

目录结构

.
├── src                                      源码目录
│    ├── store                               状态管理配置
│    │     ├── module                        模块状态管理,登录、产品等分别模块;
│    │     │      ├── authority├── index.js         authority模块的存储,不拆分文件的存储方式
│    │     │      ├── xxx                    存储xxx模块state(命名和view下的模块文件夹保持一致)├── actions.js       处理数据动作,处理需要存储的数据后再进行派发mutations, action 重点在内部执行异步操作├── getters.js       获取过滤数据,获取数据├── index.js         配置xxx模块入口文件├── mutation-types.js配置Store中所有状态的mutations├── mutation.js      更改store中的状态的唯一方法是提交mutation;通过派发,commit改变store存储的数据├── state.js         初始的store数据
│    │     ├── index.js                      生成vux Store对象配置,聚合modules中各模块的状态
.

如何新增store?

例:新增一个department的模块的currentDepartment状态管理

第一步:新增一个名字为department的store模块

  • 复制store -> modules -> meetingLayout,重命名为department

第二步: mutations.js,中新增代码

  • 复制store -> modules -> department -> mutations.js,中新增代码:
import * as types from '../mutation-types'const department = {state: {currentDepartment: null},mutations: {[types.SET_CURRENT_DEPARTMENT] (state, department) {state.currentDepartment = department},}
}export default department

第三步:暴露SET_CURRENT_DEPARTMENT方法

在store-> modules -> department -> mutation-types.js,配置上一步定义的SET_CURRENT_DEPARTMENT方法

export const SET_USER_INFO = 'SET_USER_INFO'
export const SET_CURRENT_DEPARTMENT = 'SET_CURRENT_DEPARTMENT'

第四步:将department模块聚合到store中

修改store->index.js文件

  • 导入department模块
import app from './modules/app'
import department from './module/department'
  • 将department加入到store的modules中
modules: {app,department
}

如何使用store中新增的currentDepartment

获取、修改currentDepartment

在vue文件中导入mapState,mapMutations

import { mapState, mapMutations } from 'vuex'
获取
  • 在vue的computed中,聚合需要引入的模块
computed: {...mapState(['department']),//or...mapState('department', {currentDepartment: state => state.currentDepartment}),
},

综上,就可以在vue中通过this.department.currentDepartment使用currentDepartment这个状态了

  • 在template中使用
department.currentDepartment
  • 在vue script中
this.department.currentDepartment
修改
  • 在vue的methods中,引入SET_CURRENT_DEPARTMENT方法
methods: {...mapMutations(['SET_CURRENT_DEPARTMENT']),...mapMutations(['increment', // script中通过 `this.increment()` 映射为 `this.$store.commit('increment')`// `mapMutations` 也支持载荷:'incrementBy' // script中通过 `this.incrementBy(amount)` 映射为`this.$store.commit('incrementBy', amount)`]),
}
  • 在vue的script中,修改current_department
this.SET_CURRENT_DEPARTMENT(department); // 映射为 `this.$store.commit('SET_CURRENT_DEPARTMENT', department)`
使用Actions
import { mapActions } from 'vuex'
methods: {...mapActions(['increment', // 将 `this.increment()` 映射为 `this.$store.dispatch('increment')`// `mapActions` 也支持载荷:'incrementBy' // 将 `this.incrementBy(amount)` 映射为 `this.$store.dispatch('incrementBy', amount)`]),...mapActions({add: 'increment' // 将 `this.add()` 映射为 `this.$store.dispatch('increment')`})
}

vue请求封装,Store-状态管理部分(文档笔记)相关推荐

  1. uni-app store 状态管理学习,多写几遍就会了

    uni-app使用了一段时间了,一直没有用到store 状态管理,还是应该学习一下,以后会用到的 1.使用hbuiderx创建uni-app项目 2.与static同级创建store文件夹,store ...

  2. 智能媒体管理产品文档转换/预览功能介绍(1)---Cloud Native架构

    一.导语 办公文档是每个人日常频繁使用的工具,ppt.word.xls.wps.pdf等为我们工作和生活带来了很多的便利,本文介绍在云计算和智能手机时代,基于 智能媒体管理 的新型Cloud Nati ...

  3. Tips--git bash管理本地文档的常用命令

    git bash在管理本地文档中的常用命令 1. 序 2. 初始化本地仓库 3. 创建master主干支 4. 创建分支 5. 切换分支 6. 提交分支修改 7. 合并分支 8. GitLab 配置过 ...

  4. java计算机毕业设计vue图书档案管理系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计vue图书档案管理系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计vue图书档案管理系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: ...

  5. 实验2linux进程控制与通信,实验2 进程控制与通信管理word文档良心出品

    <实验2 进程控制与通信管理word文档良心出品>由会员分享,可在线阅读,更多相关<实验2 进程控制与通信管理word文档良心出品(13页珍藏版)>请在人人文库网上搜索. 1. ...

  6. java计算机毕业设计vue健身食谱系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计vue健身食谱系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计vue健身食谱系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构 ...

  7. 工程监测管理平台、工程数据看板、工程总览、动态模型、数据分析、数据跟踪、建筑工地、数据报表、警点管控、现场记录、观测记录、测点管理、模型管理、文档管理、墙体下沉、成员管理、axure原型、产品原型

    工程监测管理平台.工程数据看板.工程总览.动态模型.数据分析.数据跟踪.建筑工地.数据报表.警点管控.现场记录.观测记录.测点管理.模型管理.文档管理.墙体下沉.成员管理.axure原型.产品原型   ...

  8. Word控件Spire.Doc 【段落处理】教程(十二):如何在 C# 中管理 word 文档的分页

    当我们要管理段落的分页时,我们可以直接插入分页符.但是后来我们可能会发现很难在分页符上方添加或删除文本,然后我们必须删除整个分页符.使用 Microsoft word,我们还可以使用段落对话框来管理 ...

  9. Vue官网2文档笔记

    文章目录 $event $on Class 与 Style 绑定 对象语法 列表渲染 v-for 中使用对象 事件处理 事件修饰符 插槽 具名插槽 解构插槽 prop 动态组件&异步组件 访问 ...

最新文章

  1. 2021年大数据ELK(十八):Beats 简单介绍和FileBeat工作原理
  2. 基于织梦Cms5.7 utf-8版本的仿今日头条微信小程序模块插件的使用和安装
  3. python3生成一个定长列表_range方法在Python2和Python3中的不同
  4. Mybatis返回值类型为Map时,空值给过滤掉了
  5. Echarts散点图
  6. php实现单个用户禁止重复登录,防止同一用户同时登陆
  7. CentOS 6.6 Oracle 安装
  8. php cdi_CDI中的事务异常处理
  9. NG Command(命令)
  10. android 属性动画还原,属性动画和补间动画
  11. hive学习07-常见的优化
  12. Jmeter七、jmeter中的参数化
  13. GridLayout将布局管理器设置为三行一列
  14. 大数据Hadoop学习记录(5)----Ubuntu16.4下安装配置HBase
  15. html点菜系统显示几号桌,如果一定要坐你会坐几号桌 1到4号桌你会如何选择
  16. mysql数据导出insert_mysql 数据导出
  17. CSR8811蓝牙音频发射一拖二解决方案
  18. 怎么使用USB Redirector远程共享软件加密狗
  19. 本地视频做成html网页,使用HTML和JavaScript播放本地的媒体(视频音频)文件的方法...
  20. CICD持续集成部署系列2-使用 harbor 搭建 Docker 私有仓库

热门文章

  1. 借力IBM 贵州移动搭建云计算民生服务平台
  2. php周边,PHP周边 – 第6页 – Joyous—快乐由此开始
  3. 信息学奥赛一本通 2018:【例4.3】输出奇偶数之和
  4. 信息学奥赛一本通 1139:整理药名 | OpenJudge NOI 1.7 15
  5. 信息学奥赛C++语言:统计数字字符个数
  6. 31 MM配置-采购-采购申请-采购申请审批策略-定义审批过程
  7. 22 为特性 采购申请凭证类型 解决第一个矛盾
  8. centos7查看进程ps_还在一台台登录网络设备查看日志吗?你太low了
  9. auto形式(更多功能)类结构实现
  10. nll_loss 和 cross_entropy