Создал простой проект Vue с помощью CLI:
vue создать мой проект
Хотел добавить две страницы, поэтому установил последнюю версию vue-router (в настоящее время v3.4.8) и следовал руководство по маршрутизации vue.
Вот как выглядит мой файл router.js:
import { createWebHistory, createRouter } from 'vue-router'
import Home from './components/Home.vue'
import About from './components/About.vue'
const router = createRouter({
history: createWebHistory(),
routes: [
{ path: '/', name: 'Home', component: Home },
{ path: '/about', name: 'About', component: About },
]
})
export default router
И, конечно же, вот как выглядит мой файл main.js:
import { createApp } from 'vue'
import router from './router'
createApp({
template: `
<div>
<router-link to='/'>Home</router-link>
<router-link to='/create'>Create</router-link>
</div>
`
})
.use(router)
.mount('#app')
В обоих компонентах Home и About нет ничего особенного, вот как они выглядят:
<template>
<div>TODO: Home</div>
</template>
<script>
export default {
name: 'Home'
}
</script>
В любом случае, все это говорит о том, что я получаю следующую ошибку:
Uncaught TypeError: Object (...) не является функцией
в eval (router.js? 41cb: 5)
Это конкретно на createRouter
Я сделал что-то не так?
Изменить: как указал Буссаджра Брахим, изначально createWebHistory
просто передавался без вызова функции. С тех пор я обновил код, чтобы включить это.
Достаточно интересно, что как только это было сделано, ошибка не возникает при его вызове.