VueRouter 未定义

Posted

技术标签:

【中文标题】VueRouter 未定义【英文标题】:VueRouter is not defined 【发布时间】:2018-05-17 23:07:10 【问题描述】:

我有一个 laravel 项目,想使用 Vue.js 作为前端。但我从来没有用过 比 jquery 更复杂的东西。我无法运行 vue-router。

在我的 app.js 中

require('./bootstrap');
require('./vue-router');
require('./routes');

window.Vue = require('vue');
     const app = new Vue(
     el: '#app',
);

然后我从https://router.vuejs.org/en/installation.html复制代码vue-router

在我的 routes.js 中

const router = new VueRouter();

var App = Vue.extend();

router.start(App, '#app');

当我尝试在控制台中打开页面时,我会看到下一个:“”

【问题讨论】:

【参考方案1】:

你必须先通过 Vue.use() 方法告诉 Vue 使用 VueRouter。所以,做:

import VueRouter from 'vue-router'

# add this code
Vue.use(VueRouter)

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

更新:

首先使用安装vue-router

npm install --save vue-router

然后像导入一样使用

import VueRouter from 'vue-router'

然后在vue中使用

Vue.use(VueRouter)

然后定义你的路线:

const routes = [
 path: '/', component: SomeComponent
]

然后初始化路由器并将路由传递给它

var router = new VueRouter(
  routes: routes,
  mode: 'history'
)

将路由器传递给 vuejs 然后获利:)

new Vue(
  el: '#root',
  router: router
)

【讨论】:

好的,谢谢。我做了 window.VueRouter = require('vue-router'); Vue.use(VueRouter);但现在我有错误 Uncaught TypeError: VueRouter is not a constructor 离开window.VueRouterVueRouter 你能用import VueRouter from 'vue-router'代替require .. 从'vue-router'导入VueRouter; Vue.use(VueRouter);现在再次“未定义 VueRouter” 现在我遇到了问题,请先执行npm install --save vue 第二次从您的app.js 中删除require('packages')(第22 行)第三次:将packages.js 中的所有代码放入app.js(在第 22 行)第四:删除 routes.js 中的第 5-8 行并将其放入 app.js(第 23 行之后)并在 route.js 中将 export default routes 放入第 4 行之后。【参考方案2】:

您忘记使用Vue.use 方法,您可以这样做:

Vue.use(VueRouter) // use the imported router as the parameter.

【讨论】:

以上是关于VueRouter 未定义的主要内容,如果未能解决你的问题,请参考以下文章

Vue 3 + Vue Router 4:TypeError:无法读取未定义的属性(读取“推送”)

未捕获的类型错误:无法读取未定义的属性(读取“使用”)

VUE JS 2 + WEBPACK 无法读取未定义 VUE RESOURCE 的属性“获取”

使用 vuex 和 vue 路由器的实例上未定义属性或方法“X”

如何在 Vue 3 的 Vue Router 中获取 cookie?这个在 router/index.js 中未定义

VueRouter:未调用子组件