多路径来源页面导航高亮以及面包屑导航修改

简介: 多路径来源页面导航高亮以及面包屑导航修改

问题缘由


这个问题比较普遍,原因是业务方面对产品进行多维度的划分(或者对产品进行归档、打标签、收藏等等),反应在前端方面就是同一个页面可以有不同的入口(产品目录结构划分)


干说不如举个例子:


  1. “活期储蓄”产品属于负债类理财产品(导航菜单)


  1. 关注“活期储蓄”产品


  1. 在“我的关注”菜单里也存在“活期储蓄”产品


从上面的描述中不难发现,“活期储蓄”产品既可以从“负债类理财产品”菜单进入,也可以从“我的关注”菜单进入。


这就带来了两个问题:


  1. 当进入“活期储蓄”产品详情页面的时候,高亮哪个导航菜单


  1. 当进入“活期储蓄”产品详情页面的时候,面包屑导航怎么显示


从用户角度来说自然是我从哪里点进去的就高亮哪个菜单,面包屑也真实的反应“来源路径”


技术背景


项目采用的技术: Vue,Element UI,vue-router


采用的 element ui 的 导航组件和面包屑组件。


面包屑是借助 vue-router 的 matched 方法 匹配到的路由对象数据注入ui组件实现的


解决问题


  • 如果可以从后端数据上进行处理当然更好,现实是没有如果。


  • 前端处理,分别针对导高亮和面包屑处理


思路分析


  1. 在进入详情页面的行为中增加标记(我使用 sessionStorage 标记,标记信息包括路径path、title,path用于高亮导航,title用于面包屑展示)


  1. 在离开详情页的时候移除标记(通过路由守卫实现,目的是标记不会带来别的副作用)


  1. 根据标记修正菜单高亮、面包屑展示


代码实现


分析完之后发现写代码就跟玩一样,没有什么技术含量,就不贴代码了


有一点需要注意:


在上面思路分析中,当进入详情页,刷新页面,可能会存在时序问题,具体就是面包屑组件里标记信息不能及时同步,这里我采用的是在data上面定义属性signTitle承接sessionStorage,然后在 computed 里面以signTitle为源数据得到最新的标记信息


可以使用全局状态管理方式替代sessionStorage,状态持久化就可以了

目录
相关文章
|
消息中间件 缓存 NoSQL
Redis经典问题:缓存雪崩
本文介绍了Redis缓存雪崩问题及其解决方案。缓存雪崩是指大量缓存同一时间失效,导致请求涌入数据库,可能造成系统崩溃。解决方法包括:1) 使用Redis主从复制和哨兵机制提高高可用性;2) 结合本地ehcache缓存和Hystrix限流降级策略;3) 设置随机过期时间避免同一时刻大量缓存失效;4) 使用缓存标记策略,在标记失效时更新数据缓存;5) 实施多级缓存策略,如一级缓存失效时由二级缓存更新;6) 通过第三方插件如RocketMQ自动更新缓存。这些策略有助于保障系统的稳定运行。
1052 1
|
网络协议 API Go
Flask 作者 Armin Ronacher:我不觉得有异步压力
Flask 作者 Armin Ronacher:我不觉得有异步压力
219 0
|
Kubernetes 关系型数据库 MySQL
ChaosBlade常见问题之数据库进行故障注入报错ibdata1文件异常如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
407 1
远程服务器返回错误(530)未登录 C# Ftp
    C#试图登录Ftp服务器时,报错“远程服务器返回错误(530)未登录”。     这是一个什么原因引起的呢? private void ConnectFTP() {         this.
7592 0
|
编解码 开发工具 Android开发
rtmp/rtsp直播播放器选择
相信大家在做rtmp、rtsp直播的时候,最大的困惑就是选个靠谱的播放器,直播的延迟,一定意义上说,90%的取决于播放器的好坏。
419 0
|
11月前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
255 3
|
Android开发
Android面试高频知识点(1) 图解 Android 事件分发机制
在Android开发中,事件分发机制是一块Android比较重要的知识体系,了解并熟悉整套的分发机制有助于更好的分析各种点击滑动失效问题,更好去扩展控件的事件功能和开发自定义控件,同时事件分发机制也是Android面试必问考点之一,如果你能把下面的一些事件分发图当场画出来肯定加分不少。废话不多说,总结一句:事件分发机制很重要。
378 9
|
存储 Apache 文件存储
在Apache环境下为Web网站增设访问控制:实战指南
在Apache服务器上保护网站资源涉及启用访问控制模块(`mod_authz_core`和`mod_auth_basic`),在`.htaccess`或`httpd.conf`中设定权限,如限制对特定目录的访问。创建`.htpasswd`文件存储用户名和密码,并使用`htpasswd`工具管理用户。完成配置后重启Apache服务,访问受限目录时需提供有效的用户名和密码。对于高安全性需求,可考虑更复杂的认证方法。【6月更文挑战第20天】
777 4
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的党建信息管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的党建信息管理系统附带文章源码部署视频讲解等
117 1
|
网络协议 Linux 网络安全
【网安神器篇】——enum4linux枚举工具
今天给大家分享的网络安全神器是smb服务专用扫描器——enum4liux
1106 0
【网安神器篇】——enum4linux枚举工具