vuex中使用多模块时,如果不同模块中action有名字冲突该如何解决

如果希望你的模块具有更高的封装度和复用性,你可以通过添加 namespaced: true 的方式使其成为带命名空间的模块。当模块被注册后,它的所有 getter、action 及 mutation 都会自动根据模块注册的路径调整命名

const store = new Vuex.Store({
  modules: {
    account: {
      namespaced: true,

      // 模块内容(module assets)
      state: { ... }, // 模块内的状态已经是嵌套的了,使用 `namespaced` 属性不会对其产生影响
      getters: {
        isAdmin () { ... } // -> getters[‘account/isAdmin‘]
      },
      actions: {
        login () { ... } // -> dispatch(‘account/login‘)
      },
      mutations: {
        login () { ... } // -> commit(‘account/login‘)
      },

      // 嵌套模块
      modules: {
        // 继承父模块的命名空间
        myPage: {
          state: { ... },
          getters: {
            profile () { ... } // -> getters[‘account/profile‘]
          }
        },

        // 进一步嵌套命名空间
        posts: {
          namespaced: true,

          state: { ... },
          getters: {
            popular () { ... } // -> getters[‘account/posts/popular‘]
          }
        }
      }
    }
  }
})

  这时候我们在不同模块写方法就不用担心命名冲突了

原文地址:https://www.cnblogs.com/bobo1/p/12601144.html

时间: 2024-10-19 22:31:15

vuex中使用多模块时,如果不同模块中action有名字冲突该如何解决的相关文章

LigerUi-Js中Grid行修改时,不执行保存事件的原因?(已解决)

(1) (2)下面代码写在grid上面 function itemclick1(item) { var editingrow = grid.getEditingRow(); switch (item.text) { case "增加": if (editingrow == null) { grid.addEditRow(); } else { LG.tip('请先提交或取消'); } break; case "修改": var selected = grid.get

shareSDK的初步使用(shareSDK中微信、qq等兼容问题,以及cocoapods支持架构冲突问题的解决)

第一次使用shareSDK来做第三方分享,可是.昨天一天都是在调试bug,一直错误不断! 先说下我的开发环境: xcode:5.1 真机调试:iPhone5s 我们都知道xcode5.1以后開始是支持arm64的,而shareSDK中的微信.qq是不支持armv64的,所以网上都有非常多方法都是正确的改变xcode的编译条件,改成armv7,armv7s:详细怎么改我就不多说了,报错直接Google一下就知道了.关键是这个问题攻克了,问题又来了我有的开源库管理工具cocoapods来实现的安装第

pycharm中导入自写模块时,模块下出现红线

问题描述: 在pycharm中导入自己写的模块时,得不到智能提示,并在模块名下出现下红线,但是代码可以执行,错误提示为下图所示: 解决办法: 出现 以上情况,是因为文件目录设置不当导致,pycharm中的第一个文件夹,即代表项目,当在其中再次建立文件夹时,是按package处理的,如果要在这些文件夹内import其他文件,需要将完整路径导入进来,如下所示: 或者使用import 按照导入包的模式先导入包,再使用包来调用其中的模块.

ASP.NET中引用dll“找不到指定模块"的完美解决办法 z

DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息.DllImport属性应用于方法,要求最少要提供包含入口点的dll的名称.DllImport的定义如下: [AttributeUsage(AttributeTargets.Method)] public class DllImportAttribute: System.Attribute { public DllImportAttribute

(转)VS无法启动调试:“生成下面的模块时,启用了优化或没有调试信息“

中调试项目遇到错误提示,Visual Studio 2010(或VS2008或VS2005)启动调试的时候,弹出提示信息: 生成下面的模块时,启用了优化或没有调试信息: C:\WINDOWS\Microsoft.NET\Frameword\v2.0.50727\Temporary   ASP.NETFiles\3cmarket\bfbd519\8aA985a18\assembly\dl3\4051c514\d0da2e40_ba3ec701\Adcontrol.DLL若要调试此模块,请将其项目生

命令行执行python模块时提示包找不到的问题

庄稼人不是专职python开发的道友,虽然与python相识已多年,可惜相识不相知,只是偶尔借助pydev写一些简单的小工具. 多年来,一直困惑于这样一个问题:同样的工程,同样的代码,使用pydev可以运行任意一个python脚本,而使用命令行运行却不行?命令行下(或者双击执行)总是提示"ImportError: No module named xxx"?pydev究竟做了什么魔术呢? 长话短说,以上面工程为例,如果是在命令行中直接执行 python c.py , 都会提示"

python之模块配置文件ConfigParser(在python3中变化较大)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ConfigParser(在python3中为configparser) #特别注意:python3和python2关于该模块的功能用法有很大的不同. #配置文件解析器 import ConfigParser,os #初始化一个配置文件对象 config=ConfigParser.ConfigParser() #增加一个section config.add_section('Sectio

在VBA中进行字符串比较时,会用到比较运算符

通常,在VBA中进行字符串比较时,会用到比较运算符(如=.>等).Like运算符和StrComp函数.此外,在模块的开头用Option Compare语句指定比较方式.2.1.1 比较运算符可以采用简单的逻辑运算符进行两个字符串的比较,即<(小于).<=(小于或等于).>(大于).>=(大于或等于).=(等于).<>(不等于).此外,还可以使用Like运算符进行比较.2.1.2 StrComp函数StrComp函数返回字符串比较的结果.其语法为:StrComp(s

【解决问题】解决python安装模块时UnicodeDecodeError

安装模块时,出现报错: UnicodeDecodeError: 'ascii' codec can't decode byte 0xcb in position 68: ordinal not in range(128) 解决方案: C:\Python27\Lib目录下mimetypes.py中添加 1 import sys 2 if sys.getdefaultencoding() != 'gbk': 3 reload(sys) 4 sys.setdefaultencoding('gbk')