从 Vue-Router 调用 vuex getter
Posted
技术标签:
【中文标题】从 Vue-Router 调用 vuex getter【英文标题】:Call vuex getters from Vue-Router 【发布时间】:2016-08-10 20:35:46 【问题描述】:是否可以从路由器调用 vuex getter? 我需要从 beforeach 钩子中检查布尔变量的状态:
router.beforeEach(function ( to, next )
if (to.path !== '/login')
// return a Promise that resolves to true or false
return the-needed-variable-from-store;
else
next()
)
如何获取和检查从商店派生的变量?
非常感谢!
【问题讨论】:
只需导入存储路由器文件 "import store from '../store'" 并返回存储值 "return store.getters" 但是如果你想访问存储的值路由,最好使用 vue-router-sync 包 【参考方案1】:这里有一个讨论:https://github.com/vuejs/vuex-router-sync/issues/3#issuecomment-200192468
我能够以一种相当荒谬的方式访问该变量:
router.beforeEach((transition)=>
if(transition.to.auth)
if(!transition.to.router.app.$store.state.auth.authorized)
transition.abort()
router.go(path:"/")
transition.next()
);
所以在你的情况下,它可能看起来像 to.router.app.$store.state
【讨论】:
以上是关于从 Vue-Router 调用 vuex getter的主要内容,如果未能解决你的问题,请参考以下文章
如何在 vuex 商店中使用 vue-resource ($http) 和 vue-router ($route)?