如何解决Vue模块导入顺序错误
也许这不是我遇到的特定于Vue的问题,但这是在我的VueJs项目中发生的。我试图简化问题,因此示例项目结构如下:
+-src/
|
+-config/
| |
| +-permissions.js
|
+-services/
| |
| +-auth.service.js
|
+-router.js
+-main.js
我忽略了所有不重要的代码来保持简单,因此main.js
是:
import router from "./router"
import authService from "./services/auth.service"
router.js
import * as Permissions from "./config/permissions"
export default new VueRouter({
routes: [
{
Meta: { requiresPermissions: Permissions.ShowArticles,},// more unimportant lines here...
},]
})
console.log('Loaded router.js')
permissions.js
export const ShowArticles = 'SHOW_ARTICLES'
console.log('Loaded permissions.js')
auth.service.js
import router from "./router"
console.log('Loaded auth.service.js')
console.log(router.currentRoute.Meta.requiresPermissions)
好,就这些。现在是我的问题。有4个console.log()
,输出如下:
Expected output:
Loaded permission.js
Loaded router.js
Loaded auth.service.js
SHOW_ARTICLES
Actual output:
Loaded router.js
Loaded auth.service.js
undefined
Loaded permission.js
我从Vue组件加载了auth.service模块,但是在 router.js 和ShowArticles
之后又加载了 permissions.js 变量具有 undefined 值。我不知道为什么会这样,将权限导入到路由器模块的顶部,那么为什么以后再调用呢?
希望很清楚。还有另一点:当我从auth.service中删除路由器时,输出变为:
Loaded auth.service.js
Loaded permission.js
Loaded router.js
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。