router-link active-class属性实现 路由切换对应文字高亮,点击文字跳转对应路由文字高亮 tag属性

本文介绍了如何使用Vue.js的`router-link`组件结合`active-class`属性来实现在路由切换时对应文字的高亮显示。通过设置`tag`属性可以指定被渲染的元素,并在Vue 4中调整为`isActive`属性来判断链接是否选中,以避免黄色警告提示。同时,文章提供了相关代码示例和最终效果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BOM中的方法,监听路径改变
在这里插入图片描述
控制台试验:
在这里插入图片描述
接下来是代码实现部分:
films, cinemas…几个页面如下图:

<template>
    <div>
        films页面
    </div>
</template>

App页面:

<template>
    <div id='app'>
               <!-- 跳转路径对应文字高亮(点击高亮) 需监听路由-->
		  <ul>
		          <li>
			        <router-link to="/films">电影</router-link>
			      </li>
			      <li>
			        <router-link to="cinemas">影院</router-link>
			      </li>
			      <li>
			        <router-link to="active">票价</router-link>
			      </li>
			      <li>
			        <router-link to="center">我的</router-link>
			      </li>
		    </ul>
    </div>
</template>
<script>
   export default{
     data(){
       return{

       }
     }
   }
</script>
<style>
</style>

效果如图:
在这里插入图片描述

 <router-link to="cinemas">影院</router-link>

使用router-link会自动给标签加上class属性
然后在router-link上使用active-class,给一个class名,设置一个颜色,就能实现路由切换对应文字显示高亮,点击文字切换对应路由文字高亮
html代码:

  <ul>
      <li>
        <router-link to="/films" active-class="liuliufilms">电影</router-link>
      </li>
      <li>
        <router-link to="cinemas" active-class="liuliufilms">影院</router-link>
      </li>
      <li>
        <router-link to="active" active-class="liuliufilms">票价</router-link>
      </li>
      <li>
        <router-link to="center" active-class="liuliufilms">我的</router-link>
      </li>
    </ul>

css代码

 <style>
  .liuliufilms{
    color: red;
  }
</style>

补充知识:
router-link上面的tag属性(属性值是谁我就渲染到谁身上)
代码如下:

<ul>
     <li>
        tag值设成li  就会渲染到li标签上面
        <router-link to="/films" active-class="liuliufilms" tag="li">电影</router-link>
      </li>
      <li>
        <router-link to="cinemas" active-class="liuliufilms" tag="p">影院</router-link>
      </li>
      <li>
        <router-link to="active" active-class="liuliufilms">票价</router-link>
      </li>
      <li>
        <router-link to="center" active-class="liuliufilms">我的</router-link>
      </li>
    </ul>

效果图:
在这里插入图片描述
tag属性 vue4会被遗弃 会报错
vue4的写法:

 <ul>
      <!--router-link会对navigate,isActive这两个函数方法赋值  v-slot相当于是个对象-->
      <router-link to="/films" custom v-slot="{navigate,isActive}">
        <!-- :class="isActive?'liuliufilms':''"  isActive传回来的值是true显示liuliufilms,传回false显示空字符串  -->
        <li @click="navigate" :class="isActive?'liuliufilms':''">电影--vue4写法---    {{isActive}}</li>
      </router-link>
      <router-link to="/cinemas" custom v-slot="{navigate,isActive}">
        <li @click="navigate" :class="isActive?'liuliufilms':''">影院---{{isActive}}</li>
      </router-link>
      <li>
        <router-link to="active" active-class="liuliufilms">票价</router-link>
      </li>
      <li>
        <router-link to="center" active-class="liuliufilms">我的</router-link>
      </li>
    </ul>

isActive(false和true)判断是否选中
效果图:
在这里插入图片描述
这样写效果一样,且不会有黄色提示文字
官方文档写法参考如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值