问题
I'm trying to write my first Vuejs app. I'm using vue-cli
and simple-webpack boilerplate.
When I add vue-router
links to my app component I get this error in console
Error in render function: "TypeError: Cannot read property 'matched' of undefined"
Here is my code:
App.vue
<template>
<div>
<h2>Links</h2>
<ul>
<router-link to='/'>Home</router-link>
<router-link to='/query'>Query</router-link>
<router-view></router-view>
</ul>
</div>
</template>
<script>
export default {}
</script>
main.js
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
import routes from './routes.js'
import App from './App.vue'
const app = new Vue({
el: '#app',
routes,
render: h => h(App)
})
routes.js
import VueRouter from 'vue-router';
let routes=[
{
path: '/',
component: require('./Components/Home.vue')
},
{
path: '/query',
component: require('./Components/Query.vue')
}
];
export default new VueRouter({routes});
回答1:
The name when you add it to Vue must be router
.
import router from './routes.js'
const app = new Vue({
el: '#app',
router,
render: h => h(App)
})
If, for whatever reason, you want to call the variable routes
you could assign it this way.
import routes from './routes.js'
const app = new Vue({
el: '#app',
router: routes,
render: h => h(App)
})
回答2:
On my Vue file I had the following code:
Then, I modified my app.js file, and place the following code:
import router from './Router/router.js'
const app = new Vue({
el: '#app',
router
});
回答3:
vue & vue router & match bug & solution
match bugs


solution
name must be
router
https://stackoverflow.com/a/44618867/5934465

OK


import default module bug
import
default module no need{}
!
来源:https://stackoverflow.com/questions/44618761/vue-router-error-typeerror-cannot-read-property-matched-of-undefined