Vue js;Vue router is not constructor error in simple route

僤鯓⒐⒋嵵緔 提交于 2019-12-06 00:44:50

问题


I am trying to implement simple routing with official route library.

Here is my 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
});

But i got an error

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


回答1:


This answer is for any onlookers hoping for a little more insight into the problem.

There are two solutions here.

Solution 1: ES Module Import

In Laravel's default config [at least], vue-router is expected to be imported as an es module. So, it should be done at the top of the file.

import VueRouter from 'vue-router'

Solution 2: CommonJS Require

Since vue-router router is an es module, you will have to explicitly access the default property of the CommonJS version of the module.

const VueRouter = require('vue-router').default;

Either Solution

You will have to register Vue Router with Vue.

Vue.use(VueRouter)




回答2:


Based on the comments finally i resolved with this import

import VueRouter from 'vue-router';
Vue.use(VueRouter);


来源:https://stackoverflow.com/questions/42549580/vue-jsvue-router-is-not-constructor-error-in-simple-route

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!