VUE JS 中的路由器链接未显示为活动状态

Posted

技术标签:

【中文标题】VUE JS 中的路由器链接未显示为活动状态【英文标题】:Router Link in VUE JS is not showing active 【发布时间】:2021-12-06 01:58:26 【问题描述】:

我希望你度过了美好的一周。问题是我现在正在学习 VUE 几个星期,但目前我正面临 VUE 路由器的问题。以下是我面临的问题:

1- 我已经注册了 5 条路线,并且已经创建了它们对应的视图。我创建了一个名为“Navbar.vue”的单独文件,我使用这个路由链接作为主导航菜单。以下是我创建的路线链接:

首页 关于 电影 演员 简介

输出附在下面。

    现在的问题是除了“电影”之外的每个链接都可以正常工作,我无法将鼠标悬停在它上面。但是每当我删除副链接时,都会出现同样的问题。以下是路由器链接的代码:

   <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>

路线注册

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 控制台输出 谁能指导我我到底错过了什么? PS 每个路由链接对应的视图都创建好了,每个路由都注册成功了。

谢谢

【问题讨论】:

这能回答你的问题吗? How to VueJS router-link active style 你在vue router的“const routes”中正确注册了这些路由吗?你能告诉我们那些路线吗? 我已经编辑了我的问题(添加了路线注册码)请检查:) 您的浏览器控制台说什么?浏览器中的 html 输出是什么?你能检查并添加截图吗? @frank 我添加了有问题的 HTML 控制台输出 【参考方案1】:

第 1 步: HTML 模板

 <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>

第 2 步: 创建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;

第 3 步:为活动课程添加 style

 <style>
.link 
  margin: 10px;

.link.active 
  background-color: red;
  color: white;

</style>

DEMO

【讨论】:

非常感谢,亲爱的它可以工作:) @MuhammadKhan 这是我的荣幸!接受并为答案竖起大拇指!

以上是关于VUE JS 中的路由器链接未显示为活动状态的主要内容,如果未能解决你的问题,请参考以下文章

Vuetify(Vue + Laravel)路由器推送后未设置导航栏活动链接

来自ajax请求的Vue.JS路由器链接参数

Vue路由器,刷新显示空白页面

Vue 3 路由器 - 路由器链接活动不工作

Vue.js 无法读取未定义的属性(读取“路由器”)错误

Vue路由器从孩子链接孩子