如何在 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 路由器?
Nuxt + Vuex - 如何将 Vuex 模块分解为单独的文件?