I have some issues creating a router using router on vuejs. My file main.js was just like the code below and then when I changed to add some routes I got the error below
MAIN.JS BEFORE (WORKING WELL)
JavaScript
x
11
11
1
import 'bootstrap/dist/css/bootstrap.css'
2
import { createApp } from 'vue'
3
import Vue from 'vue'
4
import App from './App.vue'
5
import router from './router'
6
7
import VueRouter from 'vue-router'
8
import store from './store'
9
10
createApp(App).use(store).use(router).mount('#app')
11
MAIN.JS AFTER
JavaScript
1
22
22
1
import 'bootstrap/dist/css/bootstrap.css'
2
import Vue from 'vue'
3
import App from './App.vue'
4
5
import VueRouter from 'vue-router'
6
import store from './store'
7
8
import testeRouter from './pages/testeRouter'
9
10
Vue.use(VueRouter)
11
12
const router = new VueRouter({
13
routers: [
14
{
15
path: '/pages/testeRouter',
16
component: testeRouter
17
}
18
]
19
})
20
21
Vue.createApp(App).use(store).use(router).mount('#app')
22
ERROR
JavaScript
1
2
1
TypeError: Cannot read properties of undefined (reading 'use')
2
The pages don’t render anymore. I’ve been a while trying to fix it. Anyone knows what it could be? Thanks
JavaScript
1
33
33
1
{
2
"name": "routing-software",
3
"version": "0.1.0",
4
"lockfileVersion": 2,
5
"requires": true,
6
"packages": {
7
"": {
8
"name": "routing-software",
9
"version": "0.1.0",
10
"dependencies": {
11
"axios": "^0.27.2",
12
"bootstrap": "^5.2.1",
13
"bootstrap-vue": "^2.22.0",
14
"core-js": "^3.8.3",
15
"router": "^1.3.7",
16
"vue": "^3.2.40",
17
"vue-axios": "^3.4.1",
18
"vue-router": "^4.0.3",
19
"vuex": "^4.0.0"
20
},
21
"devDependencies": {
22
"@babel/core": "^7.12.16",
23
"@babel/eslint-parser": "^7.12.16",
24
"@vue/cli-plugin-babel": "~5.0.0",
25
"@vue/cli-plugin-eslint": "~5.0.0",
26
"@vue/cli-plugin-router": "~5.0.0",
27
"@vue/cli-plugin-vuex": "~5.0.0",
28
"@vue/cli-service": "~5.0.0",
29
"eslint": "^7.32.0",
30
"eslint-plugin-vue": "^8.0.3"
31
}
32
},
33
Advertisement
Answer
Vue 3
does not have direct access use
method. That’s the issue.
JavaScript
1
3
1
Vue.use(VueRouter) // this is the issue
2
3
Try like this
JavaScript
1
20
20
1
import 'bootstrap/dist/css/bootstrap.css'
2
import { createApp } from 'vue'
3
import VueRouter from 'vue-router'
4
import App from './App.vue'
5
6
import store from './store'
7
8
import testeRouter from './pages/testeRouter'
9
10
const router = VueRouter.createRouter({
11
routers: [
12
{
13
path: '/pages/testeRouter',
14
component: testeRouter
15
}
16
]
17
})
18
19
createApp(App).use(store).use(router).mount('#app')
20