elementui 导航菜单栏和Breadcrumb 面包屑关联

系列文章目录

一、elementui 导航菜单栏和Breadcrumb 面包屑关联


文章目录

  • 系列文章目录
  • 前言
  • 一、elementui 导航菜单栏和Breadcrumb 面包屑怎么关联?
  • 二、实现效果
  • 三、实现步骤
    • 1.本项目演示布局
    • 2.添加面包屑
    • 2.实现breadcrumbName方法
    • 3.监听方法
    • 4.路由指配
    • 5.路由配置信息
  • 四、完整代码
    • 1.路由文件配置(dramsvue为我的项目名)
    • 2.导航栏和面包屑关联


前言

最近又突发奇想想做一个分享类的个人视频小网站,该网站主要分享电影、电视剧、动漫、资源4个模块。作为刚入门的vue小白,前前后后遇到各种问题,好在通过百度或官方文档解决了大部分问题。

该网站涉及技术:前端用elementui vue2.0,后端是纯springboot

下面是个人视频分享网站最新效果,该网站支持PC和手机,各位大佬们感兴趣的记得收藏,视频资源不定期更新,让你在闲暇之余既能学技术也能看感兴趣的视频资源!

观看网址:http://101.43.20.112
PS:域名申请下来了,但是备案过不了,理由是个人不能建立视频分享网站涉及版权侵权等各种问题,无奈只能用IP地址访问了

手机端:
个人更专注于手机端的实现效果,做了很多兼容性的调试工作。
在这里插入图片描述
PC端: 页面将就着看吧
在这里插入图片描述

开发过程中主要问题

一、elementui 导航菜单栏和Breadcrumb 面包屑怎么关联?

在Element UI中,导航菜单栏(NavMenu)和面包屑(Breadcrumb)经常被用来表示当前页面的位置和路径。要实现它们之间的关联,通常需要在两者的数据源上保持一致,并且监听路由的变化来更新面包屑的内容。完整代码附在文章的最后面

二、实现效果

点击导航栏左侧【2024新片精品】,关联到面包屑目录【首页/2024新片精品】
在这里插入图片描述

三、实现步骤

PS:针对有一点点vue基础的新手

1.本项目演示布局

我的项目是简单的 【上Header / 左Aside / 右Main】布局,如下图:
在这里插入图片描述

2.添加面包屑

在标签即上图中main的布局容器上方添加如下面包屑代码

<el-container><!-- 面包屑 --><el-breadcrumb separator-class="el-icon-arrow-right" style="padding-top:10px;height: 30px"><el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item><el-breadcrumb-item v-if="this.$route.path !== '/'">{{ breadcrumbName(this.$route.path) }}</el-breadcrumb-item></el-breadcrumb><el-main><!-- 路由出口,渲染与当前菜单项关联的组件 --><router-view></router-view></el-main>  </el-container>       

2.实现breadcrumbName方法

 methods: {// 面包屑breadcrumbName(route) {console.log("route="+route)return this.routePaths[route] || '未知';}},

3.监听方法

 watch: {$route(to, from) {this.activeMenu = to.path;}}

4.路由指配

  data() {return {activeMenu: '/', // 当前激活的菜单项routePaths: {'/': '首页','/filmview': '2024新片精品',// 更多路由和面包屑名称的映射}}},

5.路由配置信息

路由component配置一般有两种,我个人喜欢第二种

import HomeView from '../views/HomeView.vue'
const routes = [{path: '/',name: 'home',component: HomeView, // 第1种 路由配置children: [{path:  '/filmview',component:  ()=> import( '../views/FilmView.vue')} // // 第2种 路由配置 ]}
]

四、完整代码

1.路由文件配置(dramsvue为我的项目名)

一般在项目dramsvue\src\router\index.js

import Vue from 'vue'
import VueRouter from 'vue-router'
import HomeView from '../views/HomeView.vue'
Vue.use(VueRouter)
const routes = [{path: '/',name: 'home',component: HomeView,//children: [{path:  '/filmview',component:  ()=> import( '../views/FilmView.vue')}]}
]
const router = new VueRouter({mode: 'history',base: process.env.BASE_URL,routes
})
export default router

2.导航栏和面包屑关联

我的代码全在:dramsvue\src\views\HomeView.vue

<template><div><el-container style="border: 1px solid #ccc"><el-header>Header</el-header><el-container><el-aside width="200px" style="background-color: #545c64"><el-menudefault-active="2"class="el-menu-vertical-demo"@open="handleOpen"@close="handleClose"background-color="#545c64"text-color="#fff"active-text-color="#ffd04b":router="true" ><el-submenu index="1"><template slot="title"><i class="el-icon-video-camera-solid"></i>电影</template><el-menu-item-group><el-menu-item index="1-1" route="/filmview"><el-badge value="hot" class="item">2024新片精品 </el-badge></el-menu-item><el-menu-item index="1-2" route="/"><el-badge value="hot" class="item">2024必看热片 </el-badge></el-menu-item><el-menu-item index="1-3" route="/">经典大片</el-menu-item></el-menu-item-group></el-submenu><el-submenu index="2"><template slot="title"><i class="el-icon-s-platform"></i>电视剧</template><el-menu-item-group><el-menu-item index="2-1"><el-badge value="hot" class="item">2024最新上架</el-badge></el-menu-item><el-menu-item index="2-2">2024必看喜剧</el-menu-item><el-menu-item index="2-3">古装</el-menu-item></el-menu-item-group></el-submenu><el-submenu index="3"><template slot="title"><i class="el-icon-camera-solid"></i>动漫</template><el-menu-item-group><el-menu-item index="3-1">内地</el-menu-item><el-menu-item index="3-2">日本</el-menu-item><el-menu-item index="3-3">欧美</el-menu-item></el-menu-item-group></el-submenu></el-menu></el-aside><el-container><!-- 面包屑 --><el-breadcrumb separator-class="el-icon-arrow-right" style="padding-top:10px;height: 30px"><el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item><el-breadcrumb-item v-if="this.$route.path !== '/'">{{ breadcrumbName(this.$route.path) }}</el-breadcrumb-item></el-breadcrumb><el-main><!-- 路由出口,渲染与当前菜单项关联的组件 --><router-view></router-view></el-main><el-footer style="height: 20px;color: #ff1b08;"><div style="font-size: 10px">底部</div></el-footer></el-container></el-container></el-container></div>
</template><style scoped>.el-aside {color: #48b7d1;}.el-main {background: #eaedf2;height: calc(100vh - 100px);}body > .el-container {margin-bottom: 40px;}.el-container:nth-child(5) .el-aside,.el-container:nth-child(6) .el-aside {line-height: 260px;}.el-container:nth-child(7) .el-aside {line-height: 320px;}.el-header, .el-footer {background-color: #B3C0D1;color: #333;text-align: center;line-height: 60px;}.item {margin-top: 0px;margin-right: 40px;}
</style><script>export default {name: "HomeView",data() {const item = {date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄'};return {tableData: Array(20).fill(item),activeMenu: '/', // 当前激活的菜单项routePaths: {'/': '首页','/filmview': '2024新片精品',// 更多路由和面包屑名称的映射}}},methods: {handleOpen(key, keyPath) {console.log(key, keyPath);},handleClose(key, keyPath) {console.log(key, keyPath);},// 面包屑breadcrumbName(route) {console.log("route="+route)return this.routePaths[route] || '未知';}},watch: {$route(to, from) {this.activeMenu = to.path;}}};
</script>

以上就是今天分享的内容,要是对你有帮助的话记得点赞收藏关注哦!

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

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

相关文章

FastAPI+React全栈开发15 让我们构建一个展示API

Chapter03 Getting Started with FastAPI 15 Let’s Build a showcase API FastAPIReact全栈开发15 让我们构建一个展示API REST APIs are all about cycles of HTTP requests and responses, it is the engine that powers the web and is implemented in every web framew…

全国青少年软件编程(Python)等级考试三级考试真题2023年12月——持续更新.....

青少年软件编程&#xff08;Python&#xff09;等级考试试卷&#xff08;三级&#xff09; 分数&#xff1a;100 题数&#xff1a;38 一、单选题(共25题&#xff0c;共50分) 1.一个非零的二进制正整数&#xff0c;在其末尾添加两个“0”&#xff0c;则该新数将是原数的&#xf…

具备实时数据更新能力的大语言模型——Larimar

ChatGPT、Claude.ai等大模型产品就像“图书馆”一样为我们生成各种各样的内容。但是想更新这个图书馆里的知识却不太方便&#xff0c;经常需要漫长、费时的预训练、蒸馏才能完成。 研究人员提出了一种具有情景记忆控制的大语言模型Larimar&#xff0c;这是一种类似人脑"海…

love 2d win 下超简单安装方式,学习Lua 中文编程 刚需!!

一、下载love 2d 参考&#xff1a;【Love2d从青铜到王者】第一篇:Love2d入门以及安装教程 或直接下载&#xff1a; 64位&#xff0c;现在一般电脑都可以用。 64-bit zipped 32位&#xff0c;很复古的电脑都可以用。 32-bit zipped 二、解压 下载好了之后&#xff0c;解压到…

css3之动画animation

动画animation 一.优点二.定义和使用三.动画序列和解释四.常见属性及解释五.简写&#xff08;名字和时间不能省略&#xff09;&#xff08;持续时间在何时开始的时间前&#xff09;&#xff08;简写中无animation-play-state)六.例子1.大数据热点图2.奔跑的熊大&#xff08;一个…

vitess执行计划缓存 测试

打开执行计划器缓存&#xff1a; sysbench /usr/local/share/sysbench/oltp_write_only.lua --mysql-host127.0.0.1 --mysql-port15306 --mysql-userroot --mysql-password --mysql-dbcustomer --report-interval10 100s sysbench /usr/local/share/sysbench/oltp_read_only.l…

MySQL与SQLite区别

MySQL和SQLite都是关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它们都使用SQL&#xff08;结构化查询语言&#xff09;作为标准查询语言。然而&#xff0c;尽管它们共享许多共同点&#xff0c;但它们在语法、功能、性能和存储机制方面存在一些差异。 以下是…

vlanif三层交换机实现不同网络通信

实验目的&#xff1a;通过三层交换机实现不同 网络通信&#xff0c;之前都是路由器进行不同网络转发 拓扑图 内容&#xff1a;左边vlan10&#xff0c;右边vlan20 lsw1接口通过所有vlan lsw2网路vlan10 lsw3网络vlan20 问题点&#xff1a;开始只是配置了最上面LSW1的交换机…

React学习总结(三)之React探索

1.create-react-app脚手架的应用及优化 1.create-react-app是一个命令行工具&#xff0c;用于快速生成基于React的单页面应用程序的脚手架。 2.全局安装第三方脚手架 npm install -g create-react-app 3.创建项目 create-react-app <project_name> 4.暴露配置文件(执行后…

三台电机的顺启逆停

1&#xff0c;开启按钮输入信号是 电机一开始启动&#xff0c;5秒回电机2启动 &#xff0c;在5秒电机三启动 关闭按钮输入时电机3关闭 &#xff0c;5秒后电机2关闭 最后电机一关闭 2&#xff0c;思路开启按钮按下接通电机1 并且接通定时器T0 定时器T0 到时候接通电机2 并且开…

小米su7定价21.59万元对汽车市场的影响

小米su7作为小米公司首款量产汽车&#xff0c;定价21.59万元&#xff0c;对汽车市场的影响不可忽视。本文将从三个方面进行分析。 首先&#xff0c;小米su7的定价对汽车市场的竞争格局产生了影响。在过去的几十年中&#xff0c;市场上以传统汽车厂商为主导&#xff0c;汽车定价…

Predict the Next “X” ,第四范式发布先知AIOS 5.0

今天&#xff0c;第四范式发布了先知AIOS 5.0&#xff0c;一款全新的行业大模型平台。 大语言模型的原理是根据历史单词去不断预测下一个单词&#xff0c;换一句常见的话&#xff1a;Predict the Next “Word”。 当前对于行业大模型的普遍认知就是沿用这种逻辑&#xff0c;用大…

HTML 中的 JavaScript 操作指南:基础语法与BOM、DOM操作

一、JavaScript的简介 JavaScript 是一种高级的、解释型的编程语言&#xff0c;主要用于在网页上实现交互式的功能。网页开发唯一可用语言&#xff0c;增加网页动态性与交互性。学习JavaScript可以分为三个部分 ECMAScript&#xff1a;js的基础语法BOM&#xff1a;浏览器 对象…

聊聊多版本并发控制(MVCC)

多版本并发控制&#xff08;MVCC&#xff09; MVCC一直是数据库部分的高频面试题&#xff0c;这篇文章来聊聊MVCC是什么&#xff0c;以及一些底层原理的实现。 当前读和快照读&#xff1a; 当前读&#xff1a;读取的是事务最新的版本&#xff0c;读取的过程中其他并发事务不…

SpringBoot学习记录(1)

1. 注解 (1) RestController RestController 是一个组合注解&#xff0c;包含了Controller 和ResponseBody 两个注解的功能。 用RestController 标记的类表示这是一个RESTful 风格的控制器&#xff0c;它可以处理HTTP请求并返回JSON格式的响应。 controller&#x…

全栈的自我修养 ———— uniapp中封装api请求

api import request from /tools/request export function login(loginMessage) {return request({url: /login,data: loginMessage,loading: true}) }request // request const urlArr {DEV: http://localhost:6060, // 开发PRO: https://域名:6060, // 生产 }let BASEURL …

适用于 Windows 的 6 个最佳视频转换器

视频转换器可以帮助您在设备上转换和播放不受支持的视频格式。它还可以方便地减小视频文件大小、以通用格式组织所有视频或与其他人共享文件以在不同设备上播放。 Windows 有大量视频转换器可供选择。虽然有些是免费的&#xff0c;但其他一些则提供迎合专业用户的高级功能。在…

Android 二维码相关(三)

Android 二维码相关(三) 本篇文章主要讲下二维码扫描相关. 1: 权限相关 由于文中需要使用Camera以及surfaceview,所以我们需要提前申请相机权限: <uses-permission android:name"android.permission.CAMERA" />2: 添加SurfaceView预览 <?xml version&…

【DETR系列目标检测算法代码精讲】01 DETR算法01 DETR算法框架和网络结构介绍

为什么要有DETR 总所周知&#xff0c;传统的目标检测算法非常依赖于anchor和nms等手工设计操作&#xff0c;非常费时费力&#xff0c;自然而然的就产生了取消这些操作的想法。但是我们首先需要思考的是&#xff0c;为什么我们需要anchor和nms&#xff1f; 因为我们是没有指定…

Altium Designer许可需求分析

在电子设计的世界中&#xff0c;Altium Designer已成为设计师们的得力助手。然而&#xff0c;如何进行有效的许可需求分析&#xff0c;以确保软件的高效使用和企业的可持续发展&#xff1f;本文将带您了解如何进行Altium Designer的许可需求分析&#xff0c;让您在设计的道路上…