技巧2 router-link鼠标切换样式 vue3中.router-link-exact-active失效

本文探讨了在Vue2和Vue3中如何为`router-link`添加鼠标悬停和点击样式。在Vue2中,可以利用`router-link-active`和`router-link-exact-active`,但在Vue3中这两个类不再有效。解决方案是在Vue3的`router/index.js`中进行配置,以实现链接的高亮效果。此外,还展示了如何实现鼠标点击图片和文字的切换状态。

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

#vue3-cli4.5项目技巧1 router-link导航鼠标切换样式 vue3中.router-link-exact-active失效 vue3exact-active-classs失效

vue2用法

我们可以打开链接的样式看一下:

image-20220105152239833
可以看到router-link实际上就是a标签,在style里面给a标签添加普通样式就可以了。

如果我想鼠标点击标签有一个选中状态:

可以观察:router-link有两个class样式,router-link-active, 和router-link-exact-active.

所以,我们可以给router-link加样式:

给router-link加样式 第一种方式

这个类选择器相当于伪类选择器:active,点击变样式。

<style lang="less">

// 给router-link加样式
.router-link-exact-active{
	color:red;
}
</style>

image-20220105152739910

给router-link加样式 第二种方式

<router-link exact-active-class="on">样式</router-link>
<style scoped>
	.on{
		color:orangered;
		text-decoration: none;
	}
</style>

在vue3中使用失效

vue3中按上述做,router-link并不能变样式,并且还是官方的绿色样式,显然在vue3中这个属性已经不适用了。
因为在vue2中 router-link-active 本就不是精确匹配,只要路由路径包含router-link组件的to属性值,就可以在链接激活时设置CSS类名,而vue3不是这样,router4已经改变。

vue3的router-link样式方法

共有三步:按照我的代码标注走。

<template>
	<div>
		<!-- 1.router-link里面一定要写成 文字和router-link隔着一个标签 -->
		 <router-link to="/" exact><span>首页</span></router-link>
		 <router-link to="/goodscate"><span>分类</span></router-link>
		 <router-link to="/mycart"><span>购物车</span></router-link>
		 <router-link to="/userhome" ><span>我的</span></router-link>
	</div>	
</template>

<script>
	export default {
	  name: 'footer1',
	  data() {
	    return {
			
	    }
	  },   
	}
</script>
<style scoped>
	/* 3.router-link内部样式是由这个指定的active决定的  */
	/* 它下面的span标签是给文字换鼠标点击样式颜色的 */
	.active span{
	    color: #0984e3;
	}
</style>

找到项目的router/index.js

const router = createRouter({
// 2. 满足vue3的router-link样式的第二步,active为class名
  linkActiveClass: 'active',
  history: createWebHistory(process.env.BASE_URL),
  routes
})

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

鼠标点击两张图片切换状态 图片+文字切换

鼠标点击两张图片的切换状态
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值