Reputation: 107
I hope you are having an amazing week. The thing is I'm learning VUE for a couple of weeks now but currently I'm facing an issue with VUE Router. Following is the issue that I'm facing:
1- I have registered 5 routes and their corresponding views are already created. I have created a separate file call "Navbar.vue" where I'm using this route-link as the primary navigation menu. Following are the route links that i have created:
The output is attached below.
<div class="navLink col-3">
<router-link class="link" to="/">Home</router-link>
<router-link class="link" to="/about">About</router-link>
<router-link class="link" to="/movies">Movies</router-link>
<router-link class="link" to="/actors">Actors</router-link>
<router-link class="link" to="/profile">Profile</router-link>
</div>
ROUTES REGISTRATION
const routes = [
{
path: '/',
name: 'Home',
component: Home,
},
{
path: '/about',
name: 'About',
component:About,
},
{
path: '/actors',
name: 'Actors',
component: Actors,
},
{
path: '/movies',
name: 'Movies',
component: Movies,
},
{
path: '/profile',
name: 'Profile',
component: Profile,
},
];
const router = createRouter({
history: createWebHashHistory(),
routes,
});
HTML CONSOLE OUTPUT
Can anyone guide me on what exactly I'm missing? PS The corresponding views of each route link are created and each route is registered successfully.
Thanks
Upvotes: 0
Views: 5639
Reputation: 5614
Step 1: HTML
template
<template>
<div id="app">
<div class="navLink col-3">
<router-link class="link" to="/">Home</router-link>
<router-link class="link" to="/about">About</router-link>
<router-link class="link" to="/movies">Movies</router-link>
<router-link class="link" to="/actors">Actors</router-link>
<router-link class="link" to="/profile">Profile</router-link>
</div>
<router-view></router-view>
</div>
</template>
Step 2: Create router
import Vue from "vue";
import VueRouter from "vue-router";
import Home from "../components/Home.vue";
import About from "../components/About.vue";
import Actors from "../components/Actors.vue";
import Movies from "../components/Movies.vue";
import Profile from "../components/Profile.vue";
Vue.use(VueRouter);
const routes = [
{
path: "/",
name: "Home",
component: Home
},
{
path: "/about",
name: "About",
component: About
},
{
path: "/actors",
name: "Actors",
component: Actors
},
{
path: "/movies",
name: "Movies",
component: Movies
},
{
path: "/profile",
name: "Profile",
component: Profile
}
];
const router = new VueRouter({
mode: "history",
linkExactActiveClass: "active",
routes
});
export default router;
Step 3: Add style
for active class
<style>
.link {
margin: 10px;
}
.link.active {
background-color: red;
color: white;
}
</style>
Upvotes: 3