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
JavaScript
x
16
16
1
<template>
2
<div>
3
<h2>Links</h2>
4
<ul>
5
<router-link to='/'>Home</router-link>
6
<router-link to='/query'>Query</router-link>
7
8
<router-view></router-view>
9
</ul>
10
</div>
11
</template>
12
13
<script>
14
export default {}
15
</script>
16
main.js
JavaScript
1
13
13
1
import Vue from 'vue'
2
import VueRouter from 'vue-router'
3
4
Vue.use(VueRouter)
5
import routes from './routes.js'
6
import App from './App.vue'
7
8
const app = new Vue({
9
el: '#app',
10
routes,
11
render: h => h(App)
12
})
13
routes.js
JavaScript
1
14
14
1
import VueRouter from 'vue-router';
2
let routes=[
3
{
4
path: '/',
5
component: require('./Components/Home.vue')
6
},
7
{
8
path: '/query',
9
component: require('./Components/Query.vue')
10
}
11
];
12
13
export default new VueRouter({routes});
14
Advertisement
Answer
The name when you add it to Vue must be router
.
JavaScript
1
8
1
import router from './routes.js'
2
3
const app = new Vue({
4
el: '#app',
5
router,
6
render: h => h(App)
7
})
8
If, for whatever reason, you want to call the variable routes
you could assign it this way.
JavaScript
1
8
1
import routes from './routes.js'
2
3
const app = new Vue({
4
el: '#app',
5
router: routes,
6
render: h => h(App)
7
})
8