• vue2.0中关于active-class


    一、首先,active-class是什么

    active-class是vue-router模块的router-link组件中的属性,用来做选中样式的切换;

    相关可查阅文档:https://router.vuejs.org/zh-cn/api/router-link.html

    二、在vue-router中要使用active-class有两种方法

    方法一:直接在路由js文件中配置linkActiveClass

    export default new Router({
    
      linkActiveClass: 'active',
    
    })

    方法二:在router-link中写入active-class

    <router-link to="/home" class="menu-home" active-class="active">首页</router-link>

    三、最近在项目中出现一个问题,使用第二种方法添加active-class,跳转到my页面后,两个router-link始终都会有选中样式,代码如下

    <div class="menu-btn">
      <router-link to="/" class="menu-home" active-class="active">
        首页
      </router-link>
    </div>
    <div class="menu-btn">
      <router-link to="/my" class="menu-my" active-class="active">
        我的
      </router-link>
    </div>

    四、后来发现是因为 to="/" 引起的,active-class选择样式时根据路由中的路径去匹配,然后显示,

    ·例如在my页面中,路由为  localhost:8080/#my ,那么to="/”和to="/my"都可以匹配到,所有都会激活选中样式

    五、要解决问题并达到效果,有三种方式,都是通过加入一个exact属性

      方式一:直接在路由js文件中配置linkActiveClass,然后在标签中写入exact

    export default new Router({
    
      linkExactActiveClass: 'active',
    
    })
    <router-link to="/" class="menu-home" exact>首页</router-link>

      方式二:router-link中写入exact

    <router-link to="/" class="menu-home" active-class="active" exact>首页</router-link>

      方式三:将acrive-class换成exact-active-class

    <router-link to="/" class="menu-home" exact-active-class="active" >首页</router-link>
  • 相关阅读:
    git查看远程仓库地址命令
    sublime 安装插件GitGutter报错,git binary cannot be found等等
    sublime 中 pyv8 binary 报错怎么处理?
    经典语录(个人喜欢)
    css水平垂直居中对齐方式
    github怎么退出组织和删除自己创建的组织
    js学习篇1--数组
    js学习篇--数组按升序降序排列
    tp5.1 swoole 实现异步处理
    验证sll证书与密钥
  • 原文地址:https://www.cnblogs.com/xiaoyaoxingchen/p/10096573.html
Copyright © 2020-2023  润新知