Vue+ElementUI封裝簡易麵包屑組件

来源:https://www.cnblogs.com/sqmmmmm/archive/2022/07/12/16470293.html
-Advertisement-
Play Games

在實際項目中麵包屑是非常常見的一個功能,用於切換層級選項 當然有的公司會使用TagsView導航欄,這個後續在做介紹 今天分享一個簡易的麵包屑組件,這邊配合ui庫進行封裝 安裝依賴,在main.js中引入 yarn add element-ui import Vue from 'vue' impor ...


在實際項目中麵包屑是非常常見的一個功能,用於切換層級選項
當然有的公司會使用TagsView導航欄,這個後續在做介紹
今天分享一個簡易的麵包屑組件,這邊配合ui庫進行封裝

  1. 安裝依賴,在main.js中引入
yarn add element-ui

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.config.productionTip = false

Vue.use(ElementUI)

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
  1. 註冊路由信息及關聯components組件
const routes = [{
  path: '/',
  name: 'home',
  component: () => import('../views/Home.vue'),
  meta: { title: '首頁', path: '/' },
  children: [{
    path: '/A-Business',
    component: () => import('../views/A-Business.vue'),
    meta: { title: 'A', path: '/A-Business' }
  },
  {
    path: '/B-Extension',
    component: () => import('../views/B-Extension.vue'),
    meta: { title: 'B', path: '/B-Extension' }
  },
  {
    path: '/C-Management',
    component: () => import('../views/C-Management.vue'),
    meta: { title: 'C', path: '/C-Management' }
  }, {
    path: '/D-customer',
    component: () => import('../views/D-customer.vue'),
    meta: { title: 'D', path: '/D-customer' }
  }
  ]
}]
  1. 新建vue文件,myBreadcrumb.vue,內部使用el-breadcrumb
<template>
  <div>
    <el-breadcrumb separator="/">
      <el-breadcrumb-item v-for="(item, i) in breadList" :key="i">
        <a @click.prevent="handleLink(item)">
          {{ item.meta.title }}
        </a>
      </el-breadcrumb-item>
    </el-breadcrumb>
  </div>
</template>
<script>
export default {
  data () {
    return {
      breadList: null
    }
  },
  created () {
    this.getBreadcrumb()
  },
  methods: {
    handleLink(item) {
      const { redirect, meta } = item;
      if (redirect) {
        this.$router.push(redirect);
        return;
      }
      this.$router.push(meta.path);
    },
    getBreadcrumb () {
      // 包含當前路由的所有嵌套路徑片段的路由記錄
      const matched = this.$route.matched.filter((item) => item.meta && item.meta.title);
      // 賦值迴圈渲染
      this.breadList = matched
    }
  },
  watch: {
    $route(route) {
      // 如果轉到重定向頁面,不要更新麵包屑
      if (route.path.startsWith("/redirect/")) {
        return;
      }
      this.getBreadcrumb();
    }
  },
}
</script>
  1. 引入myBreadcrumb.vue麵包屑組件註冊使用即可
<template>
  <div>
     <!-- <myBreadcrumb /> -->
  </div>
</template>
import myBreadcrumb from "@/components/myBreadcrumb.vue";
export default {
  name: 'xxx'
  components: { myBreadcrumb },
};

歡迎大家評論,如有幫助可以關註+收藏,我會經常更新博客,大家一起討論學習


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 大家好,我是小寒~ 今天給大家帶來一篇 flink 作業提交相關的文章。 我們都知道,在開發完一個 flink 應用程式後,打包成 jar 包,然後通過 FLink CLI 或者 Web UI 提交作業到 FLink 集群。其實,Flink 的 jar 文件並不是 FLink 集群的可執行文件,需要 ...
  • 近日,騰訊雲聯手宇信科技,共同完成了信貸平臺、數據中台、手機銀行等核心金融業務的聯合解決方案,以及雙向適配認證、深度測試和優化工作,並已在某頭部農商行、某頭部城商行投產運行。未來,雙方將在信貸系統和國產資料庫的深度適配測試、監管報送國產化聯合方案、雲原生PaaS平臺雙向適配認證等領域持續推進合作。 ...
  • Postgres14.4(Docker安裝) 一,Docker拉取鏡像 docker pull postgres:14.4 #檢查鏡像是否拉取成功 docker images | grep postgres 二,新建掛載目錄,並運行容器 mkdir -p /data/postgre/data doc ...
  • 多媒體時代,音頻作為內容傳播中的重要形式,因其不受空間限制、認知負擔小、聲音元素多樣化等特點,廣泛應用於短視頻製作、兒童線上教育、有聲閱讀、游戲等領域產品,在各種形式的音頻呈現過程中,合理添加音效能夠帶給用戶更具氛圍感的沉浸式聲音體驗。HMS Core音頻編輯服務為助力全球開發者快速構建各類應用音頻 ...
  • vue特點 mvvm框架 響應式(聲明式) 組件化(支持自定義組件) 豐富的指令(Dom功能的抽象) 基於選項(template,data,computed,watch,methods) vue文檔集中ue Vue生態豐富且簡單 漸進式() Veu和Dom開發思想 Dom開發思想:當我們需要在交互事 ...
  • 1、普通的微信請求封裝 1 const http = (options) =>{ 2 return new Promise((resolve,reject) => { 3 wx.request({ 4 url: options.url, 5 method:options.method || 'get ...
  • 知識點 JavaScript部分函數 Array: concat():連接兩個數組。 join():設置分隔符連接數組成一個字元串。 pop():刪除最後一個元素。 sort():排序 Global: isNaN():判斷一個值是不是數字。 parseInt():轉換成整數。 parseFloat( ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 1. 代碼輸出結果 function Person(name) { this.name = name } var p2 = new Person('king'); console.log(p2.__proto__) //Person.pr ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...