广告
返回顶部
首页 > 资讯 > 精选 >如何解决vue组件路由高亮的问题
  • 368
分享到

如何解决vue组件路由高亮的问题

2023-06-15 00:06:07 368人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关如何解决Vue组件路由高亮的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue是什么Vue是一套用于构建用户界面的渐进式javascript框架,Vue与其它大型框架的区别是,使用

这篇文章给大家分享的是有关如何解决Vue组件路由高亮的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

vue是什么

Vue是一套用于构建用户界面的渐进式javascript框架,Vue与其它大型框架的区别是,使用Vue可以自底向上逐层应用,其核心库只关注视图层,方便与第三方库和项目整合,且使用Vue可以采用单文件组件和Vue生态系统支持的库开发复杂的单页应用。

前言

之前我对于路由的高亮都是使用缓存,给他的所有路由遍历一遍,每点击一下的时候,给他的当前值高亮,赋值active。后来发现一刷新就不行,高亮的就变成默认值0了,这里主要是讲这个问题的解决办法。

第一种是通过这样的添加类:

.router{        font: 12px/40px '微软雅黑';        background: pink;        background: pink;        color: white;        cursor: pointer;        text-align: center;        display: inline-block;        width: 40px;        background: pink;        &.isActive{            background: blue;            color:red;        }    }

第二种是监听path:

原本的代码是这样的:

<template><div id="main">    <ul >        <li  class="router" v-for="(item,index) in items" :key="index"  :class="item.isActive?'isActive':''" @click="routerTo(item,index)">            <span >{{item.name}}</span>        </li>    </ul>    <router-view></router-view>    </div>    </template><script>    export default {        data () {            return {                activeIndex2:'0',                items:[                    {name:'twoPage',code:'twoPage',path:'/twoPage',defaultIcon:require('@/assets/icon/BehaviorRank-default.png'),                    activeIcon:require('@/assets/icon/behaviorrank-active.png'),isActive:true},                    {name:'three',code:'three',path: '/three',defaultIcon:require('@/assets/icon/ChannelAllocation-default.png'),                    activeIcon:require('@/assets/icon/ChannelAllocation-active.png'),isActive:false},                    {name:'four',code:'four',path:'/four',defaultIcon:require('@/assets/icon/myReport-default.png'),                    activeIcon:require('@/assets/icon/myReport-active.png'),isActive:false},                ],            }        },        methods:{            routerTo(item,index) {                 for (let i = 0; i < this.items.length; i++) {                    this.items[i].isActive=false                                    }                this.items[index].isActive=true                this.$router.push({name:item.name})                           },        }    }</script><style lang='less'>#main{    .router{        font: 12px/40px '微软雅黑';        background: pink;        background: pink;        color: white;        cursor: pointer;        text-align: center;        display: inline-block;        width: 40px;        background: pink;            }    .isActive{            background: blue;            color:red;        }    }</style>

效果:

如何解决vue组件路由高亮的问题

但如果点击刷新会这样:高亮的Index跑到了初始化0的位置。

如何解决vue组件路由高亮的问题

如何解决这种问题

有一种方法是通过缓存sessionStorage。每次点击一下就存入缓存,刷新就从变量取值,变量没有值就从缓存取值。但一直存一直取可能有的人觉得麻烦。

还有一种方法就是初始化的时候获取路由,根据不同的路由激活对应的导航

created(){            // var path=window.location.hash.slice(2);//没有参数时这种写法也可以,不推荐            var path=this.$route.name//推荐这种            console.log(path)            if(path){                for (let i = 0; i < this.items.length; i++) {                    this.items[i].isActive=false                }                switch(path){                    case 'twoPage':                    this.items[0].isActive=true;                    break;                        case 'three':                    this.items[1].isActive=true;                    break;                        case 'four':                    this.items[2].isActive=true;                    break;                }            }        },

附:vue点击当前路由高亮的具体代码

功能展示:

如何解决vue组件路由高亮的问题

组件代码:

标签上加exact

.router-link-active{ background: rgba(255,255,255,0.8); color: gray; }
<template> <nav>  <ul>  <li>   <router-link to="/" exact>博客</router-link>   <router-link to="/AddBlog" exact>写博客</router-link>  </li>  </ul> </nav></template> <script> export default {  name: "bolgheader" }</script> <style scoped> ul{ list-style-type: none; text-align: center; margin:0; } li{ display: inline-block; margin:0 10px; } a{ color:rgb(102, 119, 204); text-decoration: none; padding:12px; border-radius: 5px; font-size:20px; } nav{ background: #eee; padding: 30px 0; margin-bottom: 40px; } .router-link-active{ background: rgba(255,255,255,0.8); color: gray; }</style>

感谢各位的阅读!关于“如何解决vue组件路由高亮的问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 如何解决vue组件路由高亮的问题

本文链接: https://www.lsjlt.com/news/276288.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解决vue组件路由高亮的问题
    这篇文章给大家分享的是有关如何解决vue组件路由高亮的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue是什么Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架的区别是,使用...
    99+
    2023-06-15
  • vue组件的路由高亮问题解决方法
    前言 之前我对于路由的高亮都是使用缓存,给他的所有路由遍历一遍,每点击一下的时候,给他的当前值高亮,赋值active。后来发现一刷新就不行,高亮的就变成默认值0了,这里主要是讲这个问...
    99+
    2022-11-12
  • 解决vue路由组件vue-router实例被复用问题
    最近在开发过程中遇到如下问题: 当前路由是这样的 http://127.0.0.1:3010/orderkeywords=22 只改变keywords的值,路由不跳转 http://...
    99+
    2022-11-13
  • vue路由组件vue-router实例被复用问题怎么解决
    本文小编为大家详细介绍“vue路由组件vue-router实例被复用问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue路由组件vue-router实例被复用问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-07-02
  • 如何解决vue中路由映射的问题
    小编给大家分享一下如何解决vue中路由映射的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在项目中遇到了一个问题,明明在Ro...
    99+
    2022-10-19
  • 如何解决vue router动态路由下让每个子路由都是独立组件的问题
    这篇文章主要介绍如何解决vue router动态路由下让每个子路由都是独立组件的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!vue-router 之动态路由vue-router...
    99+
    2022-10-19
  • Vue路由history模式如何解决404问题
    小编给大家分享一下Vue路由history模式如何解决404问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!问题背景:vue-...
    99+
    2022-10-19
  • 如何解决vue路由守卫及路由守卫无限循环问题
    这篇文章主要介绍了如何解决vue路由守卫及路由守卫无限循环问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先贴一波官方文档的内容const...
    99+
    2022-10-19
  • Vue路由自动添加#的问题及解决
    目录Vue路由自动添加#Vue路由去除 链接 / 前面的 #Vue路由自动添加# 在使用VueRouter时,配置了几个路由规则 尝试在浏览器中输入路由地址(/order,/per...
    99+
    2022-11-13
  • 如何解决vue spa应用中的路由缓存问题
    这篇文章将为大家详细讲解有关如何解决vue spa应用中的路由缓存问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。单页面应用中的路由缓存问题通常我们在进行页面前后退时,...
    99+
    2022-10-19
  • 如何解决vue-router路由参数刷新消失的问题
    这篇文章主要为大家展示了“如何解决vue-router路由参数刷新消失的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决vue-router路由参数刷...
    99+
    2022-10-19
  • 如何解决vue-cli 默认路由再子路由选中下的选中状态问题
    小编给大家分享一下如何解决vue-cli 默认路由再子路由选中下的选中状态问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!vue-cli是Vue.js官方脚手架命令行工具,我们可以用它快...
    99+
    2022-10-19
  • vue跳转同一路由报错的问题及解决
    目录vue跳转同一路由报错编程式路由跳转多次点击报错问题问题分析解决方法总结vue跳转同一路由报错 vue中,如果跳转同一个页面路由,虽不会影响功能,但是会报错 原因:路由的pus...
    99+
    2023-05-14
    vue跳转同一路由报错 vue跳转路由报错 vue跳转路由
  • 如何解决Vue相同路由不同参数的刷新问题
    这篇文章给大家分享的是有关如何解决Vue相同路由不同参数的刷新问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在使用vue和vue-router开发spa应用时,我们会遇到这样...
    99+
    2022-10-19
  • 如何解决Vue路由this.route.push跳转页面不刷新的问题
    这篇文章主要讲解了“如何解决Vue路由this.route.push跳转页面不刷新的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决Vue路由this.route.push跳转页面...
    99+
    2023-06-20
  • 如何解决iView-admin动态路由问题
    这篇文章将为大家详细讲解有关如何解决iView-admin动态路由问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 IView-admin 在使用的时候跳转客...
    99+
    2022-10-19
  • thinkphp路由不转换问题如何解决
    这篇文章主要介绍“thinkphp路由不转换问题如何解决”,在日常操作中,相信很多人在thinkphp路由不转换问题如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”thinkphp路由不转换问题如何解决...
    99+
    2023-07-05
  • 如何解决vue :src 文件路径错误问题
    这篇文章主要介绍了如何解决vue :src 文件路径错误问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。首先先说明下vue-cli的ass...
    99+
    2022-10-19
  • 如何解决vue路由变化页面数据不刷新的问题
    这篇文章给大家分享的是有关如何解决vue路由变化页面数据不刷新的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。每天记录一点点,把我遇到的问题记录下来, 希望可以帮助到更多和我...
    99+
    2022-10-19
  • vue router路由嵌套不显示问题的解决方法
    这篇文章给大家分享的是有关vue router路由嵌套不显示问题的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue router路由嵌套不显示问题的解决方法,具体内容...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作