首页 > 其他分享 >vue3面包屑导航栏

vue3面包屑导航栏

时间:2023-04-01 18:46:00浏览次数:46  
标签:const breadcrumb route value item vue3 path 面包屑 导航

import {useRoute, useRouter} from "vue-router";
import {computed, ref, watch, watchEffect,nextTick} from "vue";
const router =  useRouter()
const route = useRoute()
const breadcrumb = ref([])
/**
 *@Date:2023-03-28 17:55:20
 *@description:监听路由动态获取面包屑路径和tag标签
 *@param{}参数说明
 *@return:返回值
 */
watch(()=>router.currentRoute.value,(newVal)=>{
//获取当前路径中matched的值赋值给 breadcrumb.value,然后v-for循环即可
//filter过滤不需要的路径
  breadcrumb.value = router.currentRoute.value.matched.filter(item=>item.path!=='/home'&&item.path!=='/')
  const result = tagMenu.value.some(item=>item.path===newVal.path)
  if(!result){
    tagMenu.value.push(newVal)
  }
  setDarkTheme()
},{immediate:true})

//也可以监听route.path二选一
watch(
  () => route.path,
  (newValue, oldValue) => {
    breadcrumb.value = route.matched
  }
);


<template>
<el-breadcrumb separator="/">
        <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
        <el-breadcrumb-item v-for="(item,index) in breadcrumb" :key="item.path" :to="{ path: item.path }">{{item.meta.title}}</el-breadcrumb-item>
</el-breadcrumb>
</template>

 

标签:const,breadcrumb,route,value,item,vue3,path,面包屑,导航
From: https://www.cnblogs.com/cstd/p/17279078.html

相关文章

  • vue3+elementPlus 深色主题切换
    首先安装需要的两个依赖npmi@vueuse/corenpminstallelement-plus--save在main.js中引入css文件,自定义深色背景颜色可以看ElementPlus官方网站//引入elementUIimportElementPlusfrom'element-plus'importzhCnfrom'element-plus/dist/locale/zh-cn.mjs'//引入......
  • defineExporse vue3中一个由子组件导出数据,让父组件调用的方法。
    子组件<scriptsetup>import{ref,reactive}from'vue'constisFlag=ref(false)constdata=reactive({name:'tom',age:18})//把数据导出defineExpose({data,isFlag})&......
  • [vue3]npm创建环境
    1.npm安装vuecli[root@Python20230401VUE3]#npminstall-g@vue/cli2.查看vue版本[root@Python20230401VUE3]#vue--version@vue/cli5.0.83.创建项目[root@Python20230401VUE3]#vuecreatehello-world4.执行项目$cdhello-world$npmrunserve......
  • vue3创建工程
    创建Vue3项目的步骤如下:安装Node.jsVue3需要依赖Node.js环境,因此需要先安装Node.js。可以从官网下载Node.js的安装包并安装,也可以使用包管理器安装,例如在Ubuntu上可以使用以下命令安装:sudoapt-getupdatesudoapt-getinstallnodejssudoapt-getinstallnpm......
  • vue3 - 在单独的项目制作自定义组件插件,支持vite【前提不要使用webpack专属语法】
    1.背景与vue2组件不一样,没有那么随意,如果想要支持vite,那么不要使用webpack专属语法,如defide和 require等2.解决在 package.json文件属性  main配置为插件入口文件位置,至于是js还是ts随意 目录  简单做了个组件  入口文件内容如下importComponentf......
  • 全屏高度的固定导航条
    全屏高度的固定导航条接下来我们创建一个左边是全屏高度的固定导航条,右边是可滚动的内容。实例https://www.tzffs.com/mnst14/ul{list-style-type:none;margin:0;padding:0;width:25%;margin:0px;padding:0px;color:gray;">#f1f1f1;height:100%;/*全屏......
  • 水平导航栏
    水平导航栏有两种方法创建横向导航栏。使用内联(inline)或浮动(float)的列表项。这两种方法都很好,但如果你想链接到具有相同的大小,你必须使用浮动的方法。内联列表项建立一个横向导航栏的方法之一是指定元素,下述代码是标准的内联:实例li{display:inline;}https://w......
  • 水平导航条实例
    水平导航条实例创建一个水平导航条,在鼠标移动到选项后修改背景颜色。实例ul{list-style-type:none;margin:0;padding:0;overflow:hidden;margin:0px;padding:0px;color:gray;">#333;}li{float:left;}lia{display:block;color:white;text-alig......
  • vue3+vite+ts 配置@时vscode报找不到__dirname的问题
    vue3+vite+ts配置@时vscode报找不到__dirname的问题-CSDN博客  原因:path模块是node.js的内置模块,而node.js默认不支持ts文件的解决:安装@type/node依赖包 npminstall@types/node--save-dev......
  • Vue3中Mitt的使用
    Vue中使用MittMitt是一个在Vue.js应用程序中使用的小型事件总线库。该库允许组件进行通信,而不必过度依赖父级或子级组件之间的props。Mitt的特性和功能介绍轻量级:Mit......