如何实现带动画的动态面包屑,来看看?

news2024/11/25 18:59:20

        大家好,我是派大星,最近在自己手动搭建一个后台管理平台,将其命名为 “雷达行动 Radar-Solution” ,在开发的过程中对比了一下其他已经成型的后台解决方案,发现都存在一个共性,就是在Layout的头部都有一个面包屑组件,感觉那些都太过正经,切换的时候也没有什么动画效果,就想着要不自己搞一个带动画的面包屑玩玩。

动态面包屑

    • 面包屑组件
      • 静态面包屑
      • 动态面包屑
        • 1. 创建基本的面包屑组件
        • 2. 获取路由数据
        • 根据数据渲染动态面包屑导航
        • 4. 实现动画效果
        • 结束

面包屑组件

何为面包屑组件:

是在用户界面中的一种导航辅助。它是用户一个在程序或文件中确定和转移他们位置的一种方法。
常见的面包屑导航组件分为两类,分别是:

  • 静态面包屑
  • 动态面包屑
    让我们先来认识这两种面包屑组件如何实现的,同样又存在那些优缺点吧

静态面包屑

指的是在每个页面中写死对应的面包屑导航菜单

优点:

  • 逻辑简单,写完一个,其他的直接粘贴复制即可

缺点:

  • 每个页面都需要写一遍
  • 页面的路径结构发生变化了,需要手动修改
  • 难维护、难扩展

动态面包屑

根据当前的url 自动生成面包屑导航菜单

优点:

  • 无论路径发生什么变化,动态面包屑都会正确的计算

缺点:

  • 比静态面包屑的逻辑稍稍复杂一丢丢

那么接下来,我们就用动态面包屑来完成这项需求,在编码开始之际,让我们先对需求进行分析以及划分好实现步骤,以免在实现过程中保证逻辑清晰

  • 创建基本的面包屑组件
  • 获取路由数据
  • 根据数据渲染动态面包屑导航

ps: 以下出现的代码使用为ElementUI

1. 创建基本的面包屑组件

在这里插入图片描述
呈现效果如下:
在这里插入图片描述
那么第一步静态的面包屑已经完成了,接下来我们就需要在这个静态的组件上动动手脚,从上面的的代码中不难发现,这个组件中主要包含了两个组件部分:

  • el-breadcrumb:包裹性质的容器
  • el-breadcrumb-item:单独的导航项
    如果我们想完成动态效果,只需要依据动态数据,对el-breadcrumb-item循环遍历即可,那么接下来就只需要考虑数据如果获取数据即可!

2. 获取路由数据

对于获取路由数据,我们只需要对路由进行监听即可,从而来获取获取数据,这里Vue为我们提供了具体的获取方法,只需要通过vue.$route.matched来获取与给定路由地址匹配的数据,如果对这个属性还不是很了解的小伙伴,我这里直接 送你去 ,这里就只介绍实现方法了。

在这里插入图片描述
监听路由的变化,我们就可以获取具体的路由地址了

根据数据渲染动态面包屑导航

既然数据也已经得到了,想必不需要我说大家也应该都知道该怎么做了,趁面包屑不注意上来就是对el-breadcrumb-item一个v-for操作,
在这里插入图片描述呈现效果如下:
在这里插入图片描述

4. 实现动画效果

基本的面包屑导航栏已经完成了,但是还没有动画效果,那么我们的任务还没有完成,继续给现有的面包屑添加动画效果,其实在Vue中也已经为我们提供了添加动画的方法,使用transition将我们需要添加动画的部分包裹起来即可,这里就不介绍概念了,如果还不了解,依旧 送你去 ,那么接下来就使用transition将我们的面包屑包裹起来即可!
在这里插入图片描述
然后再为其添加上具体的动画样式就大功告成了!
在这里插入图片描述结束,接下来让我们看看最终的呈现效果吧!
在这里插入图片描述
终于我们实现了最初理想的结果,这个案例对于我来说不仅让我巩固了Vue的部分指令操作,而且还让自己有了更多的思考思考过程。

结束

这里仅是关于面包屑的部分案例,全部代码可以到GitHub中获取,项目还在开发过程中…
GitHub地址:https://github.com/pdxjie/vue-admin-radar

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

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

相关文章

分布式理论之分布式事务

写在前面 我们知道,像MySQL的InnoDB存储引擎提供了事务的能力,严格遵守AICD的事务要求,但是在分布式环境中,一个请求会在多个服务实例存在多个事务,如购物,会有订单系统,支付系统,物…

springboot够用就好系列-1.自定义LengthJudge注解校验字段长度

类似NonNull注解标注在参数之上,表示对应的值不可以为空,利用java的元注解及注解处理器实现检查属性长度的功能。 目录 程序效果 实现过程 样例代码 参考资料 程序效果 截图1.用户名超长提示 检查登录时“用户名”、“密码”字段的长度,此…

安全智能分析 环境迁移

环境迁移 Platfor m Ops for AI 作为整合了 DataOps、MLOps、ModelOps 的复杂技术平台,在项目开发时仅使用一套系统无法支撑平台的稳定搭建,往往需要开发系统、集成测试系统、正式 环境系统在项目生命周期 中协作配合。将表、索引、并发程序、配置内容等…

新手想做短视频可以选择什么领域,这三个可以无脑尝试

大家好,我是蝶衣王的小编 对于小白来说,如果你想通过短视频来赚钱,你不能在流行的领域去做。因为坑不是你能接受的,而且有太多的同行,你的竞争优势没法显现出来。下面分享一下新手适合做的短视频领域​。 一、盘点类型…

海思嵌入式开发-001-基于Ubuntu20.04搭建开发环境

海思嵌入式开发-001-基于Ubuntu20.04搭建开发环境一、虚拟机安装ubuntu20.041、安装虚拟机VMware2、基于虚拟机安装ubuntu20.04二、开发环境配置1、参考资料2、问题汇总一、虚拟机安装ubuntu20.04 1、安装虚拟机VMware 主机配置为Windows 10系统,CPU为i7-8550U 4核…

虹科新闻|ATTO 宣布支持 Apple 最新操作系统 macOS® 13 Ventura

一、即时发布 近期,虹科的合作伙伴ATTO公司宣布支持Apple最新操作系统macOS13 Ventura,所有HK-ATTO适配器、软件和实用程序都已经过新操作系统的测试和验证。 ATTO 34年来为数据密集型计算环境提供网络、存储连接和基础架构解决方案的全球领导者&#…

一文读懂什么是低代码开发?

世界在应用程序上运行,商业世界也不例外。面对变化,企业过去依赖的传统应用程序开发流程可能不再有效。从头开始构建软件解决方案需要花费数月甚至数年的时间来规划、设计、测试和部署。当您的组织需要快速解决方案时,等待负担过重的开发人员…

真实世界的人工智能应用落地——OpenAI篇 ⛵

💡 作者:韩信子ShowMeAI 📘 深度学习实战系列:https://www.showmeai.tech/tutorials/42 📘 本文地址:https://www.showmeai.tech/article-detail/414 📢 声明:版权所有,转…

CVE-2018-1273漏洞复现

今天继续给大家介绍渗透测试相关知识,本文主要内容是CVE-2018-1273漏洞复现。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授…

Web3中文|未来的工作模式:VR头显、元宇宙和供应商协作

根据Meta最近发布的一份关于未来工作模式的报告,大约三分之一的美英劳动力在进行远程办公,因此企业必须重新定义工作方式和管理机制,并探索元宇宙和虚拟现实等创新领域。 报告称:“这将推动企业寻求更具创造性和创新性的方法来凝…

canal中间件集成springboot实战落地

目录 一、数据库开启相关权限功能: 二、canal 服务端配置启动:从官网下载程序和源码到本地环境 三、canal客户端配置启动: canal中间件集成springboot实战落地开始分享,这是目前互联网很常见的中间件,监听数据库变化…

Harbor镜像仓库的安装以及Docker从Harbor上传与下载镜像

Harbor镜像仓库的安装与使用 简介:Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,除了Harbor这个私有镜像仓库外,还有Docker官方提供的Registry。相对Registry,Harbor具有很多优势,本文主要介绍Harbor镜像仓库的安…

Serivice案例

Serivice启动方式案例 1.案例1:-start方式启动 1.1创建服务 //服务类 public class MyService extends Service {//创建服务调用一次Overridepublic void onCreate() {System.out.println("onCreate");Toast.makeText(this, "onCreate", Toast.…

MySQL (三)------DDL操作数据库、DDL操作表

DDL操作数据库 1.1创建数据库(掌握) 语法 create database 数据库名 [character set 字符集][collate 校对规则] 注: []意思是可选的意思 字符集(charset):是一套符号和编码。 练习 创建一个day01的数据库(默认字符集) create database day01;…

List使用的坑

Arrays.asList的三个坑 1、不能转换基本数组类型(传数组进去,size1) 2、不支持增删操作(因为内部是一个final的数组) 3、对原始数组的修改会影响到我们获得的那个List 源码: 抽象List接口不支持新增 解决方案: 1、new ArrayList 2、java8…

4.移动端布局-flex布局**

1、传统布局和flex布局 传统布局:PC端 兼容性好布局繁琐局限性,不能在移动端很好的布局 flex布局:PC端、移动端操作方便,布局简单,移动端应用广泛PC端浏览器支持情况较差IE11或更低版本,不支持或仅部分支…

关于加密货币危机公关的智能钱包系列:该做和不该做哪些事情

我们的新一期 Twitter Spaces 为危机公关带来了加密镜头。与我们的主持人 Megan DeMatteo 一起出席本期节目的还有 Market Across 战略与消费者成功副总裁 Kim Bazak 和 Ambire CMO Vanina Ivanova。 Ambire Twitter Spaces 第 14 集以更广泛的视角来看待 FTX/Alameda 的故事。…

virtio虚拟化框架

virtio虚拟化 系统虚拟化技术是云计算最重要的核心技术之一。云计算平台的资源池化,资源统一管理以及后续的动态分配都是基于系统虚拟化技术才得以实现的。在计算机系统中,主要有计算资源,存储资源和网络资源。所以,系统虚拟化技术…

通讯录(3)

接着上一篇。 上一篇的指定删除还有一定的问题,我让用户输入要删除的联系人的名字,然后查询这个名字是否存在,再去删除。但是这里忽略了一个问题,如果两人名字一样呢?其它也有这样的问题,年龄&#xff0…

【vant组件安装】按需引入 完整引入 定制主题

vant官网:https://vant-contrib.gitee.io/vant/v2/#/zh-CN/定制主题: https://vant-contrib.gitee.io/vant/v2/#/zh-CN/theme 1. vant组件安装—按需引入 1.安装vant组件库 npm i vantlatest-v22.安装按需引入组件 npm i babel-plugin-import -D3.在babel.config.j…