laravel-5 - Vue js;Vue路由器不是简单路由中的构造函数错误

标签 laravel-5 vuejs2 vue-router

我正在尝试使用官方路由库实现简单路由。

这是我的 app.js

 window.Vue = require('vue');
    window.VueRouter= require('vue-router');

    Vue.use(VueRouter);

const vt=Vue.component('example', require('./components/Example.vue'));

const router = new VueRouter({
      routes:[
        {
          path:'/test',
          component:vt
        }
    ]
})

const app = new Vue({
    el: '#app',
    router:router
});

但我有一个错误

app.js:11256 Uncaught TypeError: VueRouter is not a constructor

最佳答案

这个答案适用于任何希望对问题有更多了解的旁观者。

这里有两种解决方案。

方案一:ES模块导入

在 Laravel 的默认配置中 [至少],vue-router预计将作为 es 模块导入。所以,它应该在文件的顶部完成。
import VueRouter from 'vue-router'
解决方案 2:CommonJS 要求

由于vue-router router 是一个 es 模块,你必须显式访问 default模块的 CommonJS 版本的属性。
const VueRouter = require('vue-router').default;
任一解决方案

您必须向 Vue 注册 Vue Router。
Vue.use(VueRouter)

关于laravel-5 - Vue js;Vue路由器不是简单路由中的构造函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42549580/

相关文章:

git - 考虑到供应商被忽略,如何克隆我自己的 Laravel 项目

php - 在 Laravel 中实现搜索 : Call to a member function posts() on null

Laravel Vue js spa 应用程序

vue.js - 使用Vue在单文件组件中调用render方法

laravel-5 - 传递给 Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() 的参数 1 必须是 Illuminate\Database\Eloquent\Model 的实例

php - 如果 $model->save() 失败,则继续代码

vue.js - validateAll 不适用于 v-for 生成的输入

javascript - Vue.js 2 : How to filter array without mutation?

vue.js - 排除 json 文件被捆绑在 Vue 中

vue.js - vue-router 2,如何通过ajax获取路由?