Vue.js 路由器在vuejs中未定义

Vue.js 路由器在vuejs中未定义,vue.js,routes,vue-router,Vue.js,Routes,Vue Router,我创建了一个vue js应用程序。其中我有路由的main index.js文件,我为其他视图创建了不同的路由文件,我的所有子文件都在main index.js路由文件中扩展 index.js(主路由文件) 下面我将在该文件中导入我的子路由 从“/test1”导入test1 从“./test”导入测试 我的子路由文件test1 export default [{ path: '/roles', component: Layout2, children: [{ path: '/'

我创建了一个vue js应用程序。其中我有路由的main index.js文件,我为其他视图创建了不同的路由文件,我的所有子文件都在main index.js路由文件中扩展

index.js(主路由文件) 下面我将在该文件中导入我的子路由

从“/test1”导入test1 从“./test”导入测试

我的子路由文件test1

export default [{
  path: '/roles',
  component: Layout2,
  children: [{
    path: '/',
    component: () => import('@/views/test/test1'),
    meta: {
        auth: true
    },
    beforeEnter(to, from, next) {
        if(checkPermission("readUser")){
        router.push({
                name: 'unauthorized'
            })
        }
    }
  }
  }]
}]

现在的问题是,我试图使用before-route在url中推送
未经授权的
,但它给了我错误,比如路由器未定义。如何解决此问题?

我认为您应该首先创建路由器实例,然后将其导出

export const router = new VueRouter(routes)

const routes = {
   path: '/roles',
   component: Layout2,
   ... etc.
}

然后将路由器导入主js文件。

是的,它在我的基本路由文件中。它不是那样工作的。如果在文件中使用任何变量、函数等,则需要将其导入到同一文件中。看看我的答案。这可能会有帮助。