Прежде всего, вы должны понимать, что одностраничный веб-сайт (без перезагрузок), созданный в VueJs, будет работать только в том случае, если ваши URL-адреса управляются через библиотеку Vue-Router.Маршруты, которые вы сделали, правильные, но для компонента нет места для загрузки.Итак, в вашем App.js, т.е. где вы хотите, чтобы все ваши компоненты загружались, вы пишете это -
<template>
<div id="app">
<Navigation></Navigation>
<router-view/>
</div>
</template>
Сосредоточьтесь на просмотре роутера, это vue-компонент, используемый Vue-Router для загрузки вашегокомпоненты.
Затем, учитывая, что у вас уже есть имена для ваших маршрутов, просто используйте: для привязки вместо href в навигационных элементах навигации.
Это означает,
<b-navbar-nav>
<b-nav-item :to="{name: 'home'}">Home</b-nav-item>
<b-nav-item :to="{name: 'about'}">About</b-nav-item>
<b-nav-item :to="{name: 'contact'}">Contact</b-nav-item>
</b-navbar-nav>
длявсе ваши элементы навигации.
Ваши маршруты должны быть -
export default new Router({
name: 'Navigation',
routes: [
{
path: '/',
name: 'home',
component: Home
},
{
path: '/about',
name: 'about',
component: About
},
{
path: '/contact',
name: 'contact',
component: Contact
},
]
})
Убедитесь, что импорт ваших компонентов связан с вашими компонентами -
<template>
<Navigation></Navigation>
</template>
<script lang="ts">
import Navigation from "@/views/navigation/Navigation.vue";
export default({
name: 'App',
components: {
Navigation
}
});
</script>
Сосредоточьтесь на«Навигация», а не «навигация»