前端Vue监听路由变化, 点击页面内按钮跳转菜单更改导航菜单选中状态

news2024/11/15 17:25:17

1.问题描述

当我们进入页面时的菜单导航栏是默认选中的状态如图

 点击博客园效果如图

问题1:

但是当我们点击页面上方返回按钮时,导航栏选中状态没有改变

分析问题1:

        这个问题是因为页面改变后页面里面存储的菜单导航栏的is-active属性没有改变,故为了解决这个问题我们应该添加监听事件,监听页面路由信息改变时改变菜单栏选中状态,方案如下 

 为页面添加watch监听熟悉,方法如下:

解决问题1:

监听页面路由信息的变化,变化后获取变化后的路由信息并改变active的值 

这里我们修改完后重复上述操作发现菜单栏选中效果已改变如图:

 但是这里我们测试过后会发现,当我们在博客园页面的时候点击刷新页面

问题2:

他的选中状态改回了默认的博客,但是路由还是博客园的路由

分析问题2:

这里的问题产生的原因是因为我们在data中为菜单栏的初始选中状态设置了默认值如图

页面刷新会经过监听方法为选中状态赋新值即(myBlog)但是紧接着会执行Vue页面生命周期-销毁,然后重新经历页面的生命周期-创建选中状态被销毁然后经历创建的时候赋予了默认值,故选中状态成为了默认状态,这里我们要解决这个问题那就是要在页面的生命周期-创建的时候再次拿到页面的路由信息并为其赋当前路由信息的值,故解决办法如下: 

解决问题2:

这里在页面的生命周期-创建的时候获取页面路由信息并赋给菜单栏的选中状态,问题解决。 

问题3: 

但是不知道各位刚刚发现没有,页面切换以后上一次菜单的默认选中状态没有被清除如图:

这个问题我们尝试后会发现,这种情况下我们点击页面任意处会发现可以清除上一次菜单的选中样式,如图

但是这种操作绝对是不符合一个用户的操作习惯的,故我们应该在路由更新后同步清除选中样式

分析问题3

这里产生这个现象的原因和选中状态大致相同,那就是因为页面重新加载后之前的选中的CSS样式并没有清除,那么我们是不是在生命周期-创建的过程中把CSS样式清除就可以了呢?带着这个问题我查阅了一些资料并翻看了Element Plus中我使用的组件el-menu、el-menu-item的CSS源码,发现想要清除CSS样式并不容易,甚至是无从下手,但是我们换个思路,既然无法在生命周期-创建中清除他的选中样式,那么我们直接全部清除他的选中样式不就解决问题了吗,但是我们又要通过选中样式区分他的选中状态,通过F12对页面元素进行分析可知

我们只需要设置鼠标移上去,背景颜色不改变,菜单背景颜色选中不改变即可

故我们只清除他的两个样式属性即可:

1.       :hover属性,

2.       background-color

代码如下:

<style>
.el-menu-item {
    font-size: 18px !important;
    font-family: "宋体";
    font-weight: bold;
}

.el-menu-item:hover {
    background-color: transparent !important;
}
</style>

但是!

我们发现页面的选中效果仍然存在

这个问题是因为选中的时候改变了el-menu-item的background-color属性,故我们需要把el-menu-item的background-color属性也改为transparent,改完后页面实现效果:

这里我们发现背景色虽然没有了,但是字体的选中颜色又没有清除,

解决问题3

故我们再重置字体颜色,代码如下:

.el-menu-item,
.el-menu-item:hover {
    color: black !important;
    background-color: transparent !important;
}

最终代码如下:

<style>
.el-menu-item {
    font-size: 18px !important;
    font-family: "宋体";
    font-weight: bold;
}

.el-menu-item.is-active,
.el-menu-item,
.el-menu-item:hover {
    color: black !important;
    background-color: transparent !important;
}
</style>

3.实现效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053725.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WIFI 密码

要破解 WIFI 密码&#xff0c;首先要抓到 WIFI 的握手包&#xff0c;要想得到 WIFI 的握手包&#xff0c;就需要在监听时刚好有设备连接了该 WIFI&#xff0c;但这就需要运气加成&#xff0c;因此可以我们可以主动将该 WIFI 的设备踢下去&#xff0c;一般设备就会自动连接该 WI…

机器学习:逻辑回归算法实现鸢尾花预测和银行数据处理

1、鸢尾花预测 1、特征选择 2、对特征处理 trainpd.read_excel("鸢尾花训练数据.xlsx") testpd.read_excel("鸢尾花测试数据.xlsx") x_traintrain[["萼片长(cm)","萼片宽(cm)","花瓣长(cm)","花瓣宽(cm)"]] y_tr…

HTML及CSS面试题4

1、BFC 1.1、介绍BFC及其应用 补充——触发BFC的方式&#xff0c;常见的有&#xff1a; 设置浮动overflow设置为&#xff1a;auto、scroll、hiddenpositon设置为&#xff1a;absolute、fixed 介绍&#xff1a; ○ 所谓BFC&#xff0c;指的是&#xff1a;一个独立的布局环境&am…

C2M商业模式分析与运营平台建设解决方案(一)

C2M&#xff08;Customer to Manufacturer&#xff09;商业模式通过直接将消费者需求与生产商对接&#xff0c;极大提升了生产效率和市场响应速度&#xff0c;本文将探讨如何通过构建高效的运营平台&#xff0c;利用大数据分析、人工智能算法及灵活的供应链管理&#xff0c;优化…

四川汇昌联信做拼多多电商怎么样?

近年来&#xff0c;拼多多凭借其独特的社交电商模式迅速崛起&#xff0c;成为国内领先的电商平台之一。四川汇昌联信作为一家专注于电商领域的企业&#xff0c;涉足拼多多平台无疑是顺应市场趋势的明智之举。那么&#xff0c;四川汇昌联信在拼多多平台上的表现如何呢? 一、产品…

推荐国产跨平台、轻量级的文本编辑器 Notepad-- v2.18

Notepad-- 是使用C编写的轻量级文本编辑器, 简称ndd, 可以支持Window/Mac/Linux操作系统平台。 我们的目标&#xff1a;完成文本编辑类软件的国产可替代&#xff0c;重点在国产Uos/Linux系统、Mac 系统上发展。 对比其它竞品Notepad类软件而言&#xff0c;我们的优势是可以跨…

【unix高级编程系列】信号

引言 以前对信号的理解&#xff0c;仅仅停留在main函数入口注册几个异常信号&#xff08;SIGPIPE、SIGSEGV、SIGFPE&#xff09;处理函数。当捕获到异常时&#xff0c;将进程的堆栈进行打印&#xff0c;方便排查、定位问题。这一类问题我认为是利用linux系统的异常信号机制&am…

系统架构师选择题知识点笔记

系统架构师复习笔记 选择题知识点 分布数据库特性 分片透明性&#xff1a;指用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的&#xff1b;复制透明性&#xff1a;指采用复制技术的分布方法&#xff0c;用户不需要知道数据是复制到哪些节点上&#xff1b;逻辑透…

AI绘画网站爆款推荐,人人都是艺术家!

嗨&#xff0c;小伙伴们&#xff0c;最近AI 绘画简直是火出了新高度&#xff01;网上那么多 AI 绘图站&#xff0c;你或许已经眼花缭乱。但悄悄告诉你&#xff0c;有些站点只能照搬照片&#xff0c;却不让你天马行空地改造&#xff0c;想找一个既聪明又有创意的 AI 画家&#x…

Nginx详解配置实例及企业高性能web服务器

目录 企业高性能web服务器 一.Web 服务基础介绍 1.1 互联网发展历程回顾 1.2 Web 服务介绍 1.2.1 Apache 经典的 Web 服务端 1.2.1.1 Apache prefork 模型 1.2.1.2 Apache worker 模型 1.2.1.3 Apache event模型 1.2.2 Nginx-高性能的 Web 服务端 1.2.3服务端 I/O 流…

循环图神经网络教程2——循环图神经网络

介绍 循环图神经网络&#xff08;Recurrent Graph Neural Network&#xff0c;RGNN&#xff09;。在标准神经网络中&#xff0c;连续的学习权重层用于从输入张量中逐步提取更高级别的特征。在用于计算机视觉的神经网络中&#xff0c;低级特征(如短直线和曲线)的存在是由较早的…

Java类的卸载

类、类的加载器、类的实例之间的引用关系 类的生命周期 类的加载器如下&#xff1a;

进程部分相关概念

进程 进程是一个程序执行的过程&#xff0c;会去分配内存资源&#xff0c;cpu的调度 进程不仅仅是一个正在运行的程序&#xff0c;它包含了程序执行所需的所有资源和状态信息 资源分配&#xff1a;操作系统会为每个进程分配必要的资源&#xff0c;如内存空间、文件句柄等。这些…

nginx重定向与防盗链

重定向 由于网站的扩容&#xff0c;负荷较大&#xff0c;需要将一部分内容迁移到其他服务器上。但是这个时候又不能更改用户常访问的域名&#xff0c;因此对其进行重定向。 1. 域名重定向 www.sxl1.com/aaa的站点需要重定向到aaa.sxl1.com rewrite ^/aaa$ aaa.sxl1.com/…

letcode 分类练习 513.找树左下角的值 112. 路径总和 106.从中序与后序遍历序列构造二叉树

letcode 分类练习 513.找树左下角的值 112. 路径总和 106.从中序与后序遍历序列构造二叉树 513.找树左下角的值112. 路径总和106.从中序与后序遍历序列构造二叉树 513.找树左下角的值 遍历二叉树&#xff0c;并记录当前的深度&#xff0c;如果深度大于最大深度&#xff0c;那么…

关于 Vivado HLS 的三大误读

【转载】关于 Vivado HLS 的三大误读 目前&#xff0c;在高层次综合&#xff08;HLS, High Level Synthesis&#xff09;领域&#xff0c;Vivado HLS可谓独树一帜。它有效地拉近了软件工程师与FPGA之间的距离&#xff0c;加速了算法开发的进程&#xff0c;缩短了产品上市时间。…

leetcode_52. N 皇后 II

52. N 皇后 II 题目描述&#xff1a;n 皇后问题 研究的是如何将 n 个皇后放置在 n n 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回 n 皇后问题 不同的解决方案的数量。 示例 1&#xff1a; 输入&#xff1a;n 4 输出&#xff1a;2…

C++:病毒系列回归记2/3 (Doge智能系统已上线)

上一期&#xff1a;C:病毒系列回归记1/3 (Doge智能系统已上线) 这一步真的非常爽哦 void Crazy(int n) {if(n 0)system("start ラム.vbs");if(n 1)system("start 今年のトラック.vbs");if(n 2)system("start ロシアのスートン焼却発電.vbs")…

安装并配置开发环境

安装并配置开发环境 获取虚拟机系统 下载vmware虚拟机工具 使用浏览器打开网址 https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html 参考下图箭头所示&#xff0c;点击下载安装 Windows版本的VMware Workstation &#xff0c;点击 DOWNLOAD …

java基础--day10字符串

视频网址&#xff1a;字符串-01-API和API帮助文档_哔哩哔哩_bilibili 1.API 1.1API概述 什么是PAI API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&am…