Vue.js 3 - 为什么在这种情况下导入 vue-router 不起作用?

RDU*_*RDU 9 javascript vue.js vue-router vuejs3 vue-router4

我有以下文件

路由器.js

import VueRouter from 'vue-router'

export const router = VueRouter({
routes: [
     {
      ...
     }
 ]
})
Run Code Online (Sandbox Code Playgroud)

main.js

import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
...
import { router } from './router'
app.use(router)
...
app.mount('#app')
Run Code Online (Sandbox Code Playgroud)

然而,在执行此操作时,我收到以下错误 Uncaught TypeError: this is undefined - vue-router.esm.js:2828it似乎是 vue-router 库内的错误,因为错误发生在第 2828 行。

这是通过尝试导入 vue-router 而不尝试在应用程序中的其他任何地方使用它来实现的,我也以相同的方式使用 vuex 和导入导出/导入存储,并且它可以工作。

{createApp}我的猜测是我导入的 vue-router 是错误的,因为文档在示例中没有使用。是我导入错误,还是有其他原因导致它不起作用?

Bou*_*him 12

首先确保您已经使用以下命令安装了 vue router 4:

npm install vue-router@next
Run Code Online (Sandbox Code Playgroud)

然后导入createRouter创建路由器实例:

 import { createRouter,createWebHistory} from 'vue-router'

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes: [
     {
      ...
     }
 ]
})

Run Code Online (Sandbox Code Playgroud)