如何在 Vuex 模块 Actions 中使用 vue-router?

Posted

技术标签:

【中文标题】如何在 Vuex 模块 Actions 中使用 vue-router?【英文标题】:How to use vue-router in Vuex module Actions? 【发布时间】:2021-01-13 18:39:53 【问题描述】:

我想在 vuex 的模块文件中做this.$router.push(path)。 由于那里没有定义,我该如何执行。

【问题讨论】:

Check this @NikleshRaut 似乎 OP 想要以相反的方式访问它,访问 Vuex 中的路由器而不是路由中的状态。 【参考方案1】:

只需导入路由器即可使用,如下所示:

import router from 'path/to/router'

router.push(path)

为什么会这样:

在 Vue 文件中,this 绑定到 Vue 对象,这就是为什么您可以使用某些可用的方法,例如 $router 或 $store。

但是在普通的 JS 文件中,this 只是绑定到不包含任何 Vue 特殊功能的全局对象,这就是你必须手动导入路由器的原因。

【讨论】:

谢谢,我可以在路由器中使用 vuex,反之亦然。

以上是关于如何在 Vuex 模块 Actions 中使用 vue-router?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Quasar 框架访问 Vuex 存储模块操作中的 Vue 路由器?

vuex-Actions的用法

Nuxt + Vuex - 如何将 Vuex 模块分解为单独的文件?

大型Vuex项目 ,使用module后, 如何调用其他模块的 属性值和方法

Vuex模块:开启命名空间

vuex namespaced的作用以及使用方式