modules使用详解

首先在唯一的store对象里注册modules
modules: {a:moduleA
}
然后创建modules
const moduleA = {state: {name: 'A'},mutations: {updateName(state) {state.name = 'qwer'}},getters: {fullName(state) {return state.name + '111'},fullName2(state, getters) {return getters.fullName + '222'},/*第三个参数是唯一的store的state内容*/fullName3(state, getters, rootState,rootGetters) {return getters.fullName2 + rootState.counter + rootGetters.powerCounter}},actions: {//这里的context上下文只会取提交自己的mutations,不会去找root的aUpdateName(context) {setTimeout(() => {context.commit('updateName')}, 1000)}}
}
<h2>===========modulesA里的内容=============</h2>
<h2>{{$store.state.a.name}}</h2>
<button @click="updateName">修改名字</button>
<h2>{{$store.getters.fullName}}</h2>
<h2>{{$store.getters.fullName2}}</h2>
<h2>{{$store.getters.fullName3}}</h2>
<button @click="asyncUpdateName">异步修改名字</button>
updateName() {this.$store.commit('updateName')
},asyncUpdateName() {this.$store.dispatch('aUpdateName')
}

首先modulesA里的state可以通过可以通过自己的别名a来调用。其实a的state直接被添加到store的state里.

注意modules里的方法名和store里的方法名不要重复。modules里的方法调用和store里的相同,首先会在store里找同名方法,找不到就去modules里找

modules里的getters不仅可以将自己作为参数传递,还可以增加一个rootState参数,这个参数可以直接调用store的state,还可以有第三个参数rootGetters,可以调用store的getters

所以不要有命名冲突。还有一个不同点。

就是modules里的context和store里的不同,他不会去store里找同名方法,他自会在自己的范围内去commit方法名。

同时这个context是一个对象里边不仅有modules里的state/getters,还有rootSatte/rootGetters

modules使用详解相关推荐

  1. linux make modules 命令详解

    一.Linux 内核模块编译的本质 make modules 命令的执行路径只能是内核源码顶层目录,执行结果是:读取内核源码顶层目录中的 Makefile 文件,找到里面定义的 modules 目标. ...

  2. css模块化及CSS Modules使用详解

    什么是css模块化? 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种处理复杂系统分解成为更好的可管理模块的方 ...

  3. Linux中/proc目录下文件详解 /proc/devices文件 /proc/modules文件

    http://blog.chinaunix.net/uid-10449864-id-2956854.html 原来对linux系统中的/proc目录不是很了解,只知道可以查看cpu,内存等相关的信息, ...

  4. Assembly与Modules详解

    C#Assembly详解 (可参考https://blog.51cto.com/lsieun/1753506  <CLR Via C#>使用CSC.exe将module组合成assembl ...

  5. Linux中/proc目录下文件详解

    Linux中/proc目录下文件详解(一) 声明:可以自由转载本文,但请务必保留本文的完整性. 作者:张子坚 email:zhangzijian@163.com 说明:本文所涉及示例均在fedora ...

  6. elasticsearch-.yml(中文配置详解)

    此elasticsearch-.yml配置文件,是在$ES_HOME/config/下 elasticsearch-.yml(中文配置详解) # ======================== El ...

  7. JSX设置CSS样式详解

    JSX设置CSS样式详解 1. 使用className设置样式(CSS的其他选择器也是同理) (1)定义一个CSS文件style.css,和普通CSS一样定义class选择器 .sty1{//和普通C ...

  8. php theme_path,PHP_Yii2主题(Theme)用法详解,本文实例讲述了Yii2主题(Theme) - phpStudy

    Yii2主题(Theme)用法详解 本文实例讲述了Yii2主题(Theme)用法.分享给大家供大家参考,具体如下: 首先看看主要的配置方式: 'components' => [ 'view' = ...

  9. Python中的__name__和__main__含义详解

    背景 在写Python代码和看Python代码时,我们常常可以看到这样的代码: ? 1 2 3 4 5 def main():     ...... if __name__ == "__ma ...

最新文章

  1. Error in Math.factor(x) : ‘abs’ not meaningful for factors
  2. bitmap格式分析
  3. boost::gil::view_is_mutable用法的测试程序
  4. php考勤分析,php考勤系统
  5. mysql 5.1.3_1.1.1 MySQL5.5默认存储引擎的调整(3)
  6. k8s dashboard_ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard
  7. 如何获得更多表情包_从资产商店获得更多
  8. python3 打包exe 加密_python代码加密之生成exe可执行文件
  9. ICCV 2021 | 2D和3D通用!港大提出PCRL:新医疗影像自监督SOTA!
  10. cad菜单栏快捷键_CAD快捷键:表格填写命令FORMTXT如何使用?
  11. AWFWD改进后的融合算法
  12. Android okhttp3设置代理(http/https)
  13. 人之间的尊重是相互的_人与人之间彼此尊重是相互的,你若敬我一尺,我必敬你一丈...
  14. 使用jQuery跳转到指定页面
  15. idea工具整合前端vue,nodeJs步骤
  16. 数据结构之栈(后进先出表)
  17. 直播预告| 清华CoAI小组——郑银河、刘劼西
  18. matlab采用粒子群优化算法求解含压缩储能设备的综合能源系统运行优化
  19. 国产数据库DM7与DM6最明显的区别
  20. 计算机美化照片教案,工具活动1《美化照片秀风采》教学设计

热门文章

  1. 求三角函数中的反正弦/余弦函数
  2. 手机生成ODEX提升开机速度的原因
  3. asp.net排序功能
  4. hibernate集合映射inverse和cascad…
  5. 80端口被System占用如何解决
  6. 【双目相机】python使用双目摄像头录像、调用摄像头、调用视频
  7. Ubuntu根目录终极清理
  8. Python实战计划学习作业1-3
  9. Linux运维工具Supervisor(进程管理工具)
  10. 如何通过远程控制进行多人联机