active vue 路由样式保持_VUE,关于导航列表样式切换(VUE Router:router-link-active)...

本文介绍了在Vue中如何实现导航列表的样式切换,包括使用JQuery、Vue的Class与Style绑定、自定义组件标题属性以及Vue Router的`router-link-active`特性。通过实例详细解析了四种不同的实现方式,特别强调了Vue Router的官方解决方案,可以避免样式保持问题。
摘要由CSDN通过智能技术生成

当我们新建一个网站时,总是要做一个导航列表,在传统的WEB开发中这已经是一种很成熟的技术,自己学VUE,看了官方文档,加上自己摸索,也学到不少,现在拿来分享一下。在自己VUE入门学习的笔记中也有提及

第一种:JQUERY中我们通常采用:

$("li[class='active']").removeClass("active"); //将当前选中的项目解除被选中的样式;

$(selector).addClass('active');//为选中的条目添加被选中的样式;

非常简便,需要npm install jquery,并在baseConfig中配置。但学VUE,还是用其本身的Class 与 Style 绑定最好。

第二种:VUE中没有选择器,但对于CSS属性支持状态关联操作(Class 与 Style 绑定):

eg:v-bind:class="{ active: isActive }"

解读:当isActive值为真时,active样式有效,Dom渲染结果是:class=“active”

当为false时,active样式无效,Dom渲染结果是:class=“”

因此我们可以利用这个属性做文章

标签HTML:

这条语句我们生成了一个列表,并为其绑定了一个选中事件,为class动态绑定了一个判断事件

同样我们在选择这个事件中:

function selected(seclctedName){

this.activeName= seclctedName;

}

数据属性:

data(){

return{

tagNames:[

{name:'hello',tabLink:'/Hello'},

{name:'Login',tabLink:'/Login'},

{name:'MyBlog',tabLink:'/MyBlog'}

],

activeName:'hello' //当activeName初始值为空时,浏览器加载时默认没有选择的列表项,当为hello时,hello列表默认被选中

}

},

初看运行起来还可以,切换也正常,但当我们停留在非HELLO页面时,刷新页面,hello被选中了,而刷新前的选中样式被解除了,这是因为我们为activeName:'hello' 赋了初值。所以有BUG。

第三种:思路同二,但activeName,我新建导航样式列表组件时,我为其定义了一个TITLE属性

props: {

title: {

type: String,

default: 'any'

}

}

并在列表中使用:class="{active:title== tabbarName.name}来绑定active CSS,

当其他页面调用这个组件时,指定TITLE,比如: 、

这是当切换到MyBlog时,他就会被选中,随便刷新,都没有方法二的情况出现。

第四种:也是最官方,最简单的。自己当时看VUEROUTER,因为看着面熟,看的比较快,所以错过了这个知识点,开始页的最下面有这样一句话:当 对应的路由匹配成功,将自动设置 class 属性值 .router-link-active,所以你只需要在自己的STYLE文件中,写了.router-link-active的样式,列表选中后,系统就会自动去绑定这个样式。此处应该有很多个锤头掩面的表情*。

然后

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中,.router-link-active和.router-link-exact-active是用于样式控制的类名。这些类名可以用于给当前活动的路由链接添加样式。 .router-link-active类名会在当前路由链接的路径与当前路由匹配时被添加到元素上。例如,当访问路径为"/"时,具有to="/"的<router-link>元素会被添加.router-link-active类名。\[2\] 而.router-link-exact-active类名则会在当前路由链接的路径与当前路由完全匹配时被添加到元素上。例如,当访问路径为"/"时,具有to="/"且带有exact修饰符的<router-link>元素会被添加.router-link-exact-active类名。\[1\] 通过为这些类名添加样式,我们可以在活动的路由链接上应用特定的样式,以提高用户体验或突出显示当前所在的页面。 #### 引用[.reference_title] - *1* *2* [router-link-activerouter-link-exact-active 区别](https://blog.csdn.net/OJNBO_1/article/details/129475223)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Vue路由中的router-link-exact-activerouter-link-active](https://blog.csdn.net/zyz00000000/article/details/88713716)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值