开发者问题收集

vue-router 未捕获的 ReferenceError:路由器未定义

2019-08-09
8997

我正在检查 Vue 及其路由器组件,但在使用路由器组件时遇到了一些问题。控制台中的错误如下:

Uncaught ReferenceError: router is not defined

大家好,

我正在将 Vue 和 VueRouter 导入 index.html ,并尽力阅读文档以初始化路由器,但似乎无法正常工作。

index.html 中:

<script type="module" src="/assets/js/main.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

main.js 中:

import VueRouter from 'vue-router'

Vue.use(VueRouter)

var router = new VueRouter({
  routes: [
    { path: 'home', component: home } 
  ]
});

var app = new Vue({
  router,
  el: '#app',
  data: {
    ...etc

如能提供帮助,我们将不胜感激...

非常感谢。

2个回答

您不能使用 import VueRouter from 'vue-router' AND <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

import 表示它将其作为 npm 依赖项,该依赖项将在编译时捆绑在 main.js 文件中。

您需要运行 npm install -save vue-router 或删除 import ... 语句。

Daniel
2019-08-09

似乎您没有任何构建过程,并且您直接在浏览器中加载 Vue 和 Vue Router。

要使一切正常,您应该遵循以下步骤:

  1. 更改脚本的顺序,以便您的 main.js 排在最后。因为您需要在初始化应用程序之前加载 Vue 和 Vue Router。
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<script type="module" src="/assets/js/main.js"></script>
  1. 从您的 main.js 中删除 import ,因为它直接在浏览器中运行。
Vue.use(VueRouter)

var router = new VueRouter({
  routes: [
    { path: 'home', component: home } 
  ]
});

var app = new Vue({
  router,
  el: '#app',
  data: {
    ...etc 
Andrew Vasylchuk
2019-08-10