当前位置: 首页 > news >正文

Element UI动态实现面包屑导航~

思路:监听路由变化,在路由规则中添加meta然后在组件中渲染。

import Vue from "vue"
import VueRouter from "vue-router"
Vue.use(VueRouter)
// 解决ElementUI导航栏中的vue-router在3.0版本以上重复点菜单报错问题
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push (location) {return originalPush.call(this, location).catch(err => err)
}const router = new VueRouter({routes:[{path:'/',redirect:'/welcome',},{path:'/home',name:'home',component:()=>import('../src/view/showIndex.vue'),meta:{title:'首页'},children:[{path:'/user',name:'user',component:()=>import('../src/view/user.vue'),meta:{title:'用户管理'}},{path:'/categroy',name:'categroy',component:()=>import('../src/view/categroy.vue'),meta:{title:'品类管理'}},{path:'/product',name:'product',component:()=>import('../src/view/product.vue'),meta:{title:'商品生产'}},{path:'/sex',name:'sex',component:()=>import('../src/view/sex.vue'),meta:{title:'角色管理'}},{path:'/welcome',name:'welcome',component:()=>import('../src/view/welcome.vue'),}]},{path:'/shang',name:'shang',component:()=>import('../src/view/showIndex.vue'),meta:{title:'商品'},children:[{path:'/user2',name:'user2',component:()=>import('../src/view/user2.vue'),meta:{title:'用户管理2'}},]},{path:'/login',name:'login',component:()=>import('../src/view/loginNews.vue')},
]
})
// 路由前置守卫
router.beforeEach((to,from,next) => {const token = localStorage.getItem("token")if(to.path ==='/login'){next()}else{if(token){next()}else{next('/login')}}})export default router
<template><div class="home"><!-- 首页 --><el-container><el-header><!-- 头部 --><showTop></showTop></el-header><el-container><el-aside width="200px;"><AsideLeft></AsideLeft></el-aside><el-main><!-- 面包屑导航 --><Breadcrumb></Breadcrumb><router-view></router-view></el-main></el-container></el-container></div>
</template><script>
import showTop from "../components/showTop.vue";
import AsideLeft from "../components/AsideLeft.vue";
import Breadcrumb from "../components/Breadcrumb.vue"
export default {name: "showIndex",components: {showTop,AsideLeft,Breadcrumb},
};
</script><style>
.el-header {background-color: #b3c0d1;color: #ffffff;text-align: center;line-height: 60px;background-color: rgb(60, 60, 60);
}.el-aside {background-color: rgb(60, 60, 60);color: #333;text-align: center;line-height: 200px;position: absolute;top: 60px;bottom: 0px;
}.el-main {background-color: #e9eef3;color: #333;text-align: center;line-height: 160px;position: absolute;top: 60px;left: 200px;right: 0;bottom: 0px;
}body > .el-container {margin-bottom: 40px;position: relative;
}
</style>

<template><!-- 面包屑导航 --><div><el-breadcrumb separator-class="el-icon-arrow-right"><el-breadcrumb-itemv-for="(item, index) in list":key="index":to="item.path">{{ item.title }}</el-breadcrumb-item></el-breadcrumb></div>
</template><script>
export default {name: "BreadCrumb",data() {return {list: [],};},mounted(){//   解决刷新面包屑消失问题if(localStorage.getItem('BreadCrumb')){this.list = JSON.parse(localStorage.getItem('BreadCrumb'))}},watch: {$route() {console.log("this.$route", this.$route);this.fn()},},methods: {fn() {this.list = [];const matched = this.$route.matched;matched.forEach((item) => {// 首页不需要面包屑导航if (this.$route.name == "welcome" || this.$route.name == "home") {return;}this.list.push({ title: item.meta.title, path: item.path });});//   解决刷新面包屑消失问题localStorage.setItem('BreadCrumb',JSON.stringify(this.list))},},
};
</script><style></style>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 1区Top期刊竟24小时内就录用?这7篇论文是走运吗,同行评审这一关怎么过的?
  • 图数据库框架及其支持的开发语言和应用场景
  • 【JAVA开发】JAVA开发手册
  • Hadoop大集群配置文档-粗略版-3万字长文 (包括hive,zookeeper,hbase,flume等中间件和mysql等)
  • git修改已提交的message信息
  • 微信拼团活动的制作步骤是什么
  • plsql不安装oracle能连接数据库吗 plsql不安装oracle客户端连接远程数据库怎么操作
  • 如何开放MySQL允许远程访问权限?MySQL如何远程访问?
  • LinuxC高级day04(gcc、gdb、makefile工具)
  • python媒体下载工具 you-get
  • centos安装rclone挂载alist
  • MATLAB中cdf2rdf函数用法
  • Promise如何解决回调地狱问题?
  • 电脑图片损坏打不开怎么办?能修复吗?
  • 大厂进阶之二:React高级用法HOC、Hooks对比、异步组件
  • @angular/forms 源码解析之双向绑定
  • 《深入 React 技术栈》
  • Angular6错误 Service: No provider for Renderer2
  • CentOS从零开始部署Nodejs项目
  • CSS中外联样式表代表的含义
  • gitlab-ci配置详解(一)
  • Java 内存分配及垃圾回收机制初探
  • java多线程
  • MySQL主从复制读写分离及奇怪的问题
  • nodejs:开发并发布一个nodejs包
  • node入门
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 近期前端发展计划
  • 排序算法之--选择排序
  • 提醒我喝水chrome插件开发指南
  • kubernetes资源对象--ingress
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 如何用纯 CSS 创作一个货车 loader
  • 通过调用文摘列表API获取文摘
  • 昨天1024程序员节,我故意写了个死循环~
  • ​人工智能书单(数学基础篇)
  • ###C语言程序设计-----C语言学习(3)#
  • #HarmonyOS:基础语法
  • %check_box% in rails :coditions={:has_many , :through}
  • (20)docke容器
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (备忘)Java Map 遍历
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (六)DockerCompose安装与配置
  • (六)软件测试分工
  • (三)Honghu Cloud云架构一定时调度平台
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .NET C# 配置 Options