vuex中,配置了NameSpaced后,怎么通过getter获取值

dl348 2019-04-11 04:13:55
我配了两个modules,一个是logininfo,其namespced = ture 。 另一个是userinfo,其namespaced = false。如下图所示:
logininfo:


userinfo:



在router中读取它们的值:
分别使用
store.state.modules名字.state名字
store.getters.getter方法名
的方式获取值,没有配置namespaced的module,可以成功获取。配了namespaced的module,没法通过getter方式获取。怎么写都不行:


通过debug模式看到,对于store.getters来说,有4个属性。前三个(getUserName,getUserId,getToken)都是没有namespaced那个module的。最后一个logininfo/getLogin则是配置了namespaced的module(红色箭头所示)。
我都是使用store.getters.xxx的方式获取值,但是控制台报ReferenceError: getLogin is not defined(黄色箭头所示)。

请问我应该如何通过getter获取getLogin的值?
...全文
1656 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
蛙夏~ 2022-03-23
  • 打赏
  • 举报
回复 1

this.$store.getters["模块名/方法名",'传参']

masakari_cz 2019-08-28
  • 打赏
  • 举报
回复
引用 2 楼 masakari_cz 的回复:
let isLogin2 = store.getters[logininfo/getLogin'']
写错了,应该是let isLogin2 = store.getters['logininfo/getLogin]
masakari_cz 2019-08-28
  • 打赏
  • 举报
回复 1
let isLogin2 = store.getters[logininfo/getLogin'']
dl348 2019-04-12
  • 打赏
  • 举报
回复
顶一下,请问如何获取包含modules的getter?
【源码免费下载链接】:https://renmaiwang.cn/s/878fm 在Vue.js应用,当项目的复杂性增加时,单一的Vuex状态管理模式可能无法满足需求。这时我们可以利用Vuex的多模块功能。该技术允许将存储分解为独立的功能块,每个块包含state、mutation、action和getter等属性,从而提升了代码的可管理性和结构清晰度。在多模块架构,通过设置namespaced命名空间可以避免不同模块之间名称冲突的问题。例如,在modulesA.js展示了如何创建带有命名空间的模块:该模块定义了namespaced: true,并配置了state、mutation和action等属性。而在modulesB.js,默认情况下namespaced未启用,这意味着其mutation和action将注册在全局命名空间。在组件调用这些模块时,若使用命名空间,则需要包含前缀进行操作,如:this.$store.dispatch(moduleA/getVip1);而无需前缀即可调用moduleB的action与mutation。此外,在参数处理方面,action和mutation接收的状态信息有所不同,其state代表当前模块状态,commit用于提交mutation,并通过rootState访问全局状态。在取模块状态时,也可以利用命名空间进行访问操作。该方法不仅增强了代码的可管理性,还有效避免了命名冲突问题。理解并熟练掌握这一特性有助于构建更灵活和扩展性的Vue.js应用。

43,737

社区成员

发帖
与我相关
我的任务
社区描述
HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式.被认为是互联网的核心技术之一。
社区管理员
  • HTML5社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧