Vue如何批量註冊組件

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

最近寫項目碰到一個需求,左側樹形結構每個節點對應不同類型的表格,因表格類型各式各樣,樹形結構上還帶有覆選框全選功能 決定每一個表格單組為一個組件進行開發,在右側使用動態組件迴圈載入展示,組件名定義為左側樹節點的唯一id 此時遇到一個問題就是在main-table組件中需要導入很多組件進行註冊如下圖 ...


最近寫項目碰到一個需求,左側樹形結構每個節點對應不同類型的表格,因表格類型各式各樣,樹形結構上還帶有覆選框全選功能
決定每一個表格單組為一個組件進行開發,在右側使用動態組件迴圈載入展示,組件名定義為左側樹節點的唯一id
此時遇到一個問題就是在main-table組件中需要導入很多組件進行註冊如下圖

在思考及查閱資料後決定使用require.context()批量註冊進行優化

require.context(directory, useSubdirectories, regExp)
directory:表示檢索的目錄
useSubdirectories:表示是否檢索子文件夾
regExp:匹配文件的正則表達式,一般是文件名
例如 require.context("@/views/components", false, /\.vue$/)

應用到項目中,新建index.js文件,/component/index.js,迴圈註冊組件

const importComponentsFn = require.context('./', false, /\.vue$/)
export default {
  install (app) {
    // importComponentsFn.keys()獲取所有.vue尾碼的文件名數組迴圈
    importComponentsFn.keys().forEach(key => {
      // importComponentsFn傳入文件名,批量導入組件.default獲取組件信息
      const component = importComponentsFn(key).default
      // 使用組件名進行註冊組件
      app.component(component.name, component)
    })
  }
}

最後在main.js中註冊即可,註意每個組件中必須含有name屬性,值為樹形節點的唯一id

import component from '@/views/public-check/components'
Vue.use(component)

這樣只要新建.vue尾碼的文件就會自動註冊,不需要再一個個導入進行註冊

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


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

-Advertisement-
Play Games
更多相關文章
  • 一、安裝環境 1、VMware Workstation 16 Pro 2、CentOS7.9 二、部署系統 步驟1、進入VMware,點擊創建新的虛擬機 步驟2、進入新建虛擬機嚮導,選擇典型(推薦) 步驟3、進入安裝來源,選擇稍後安裝操作系統 步驟4、進入客戶機操作系統選項,選擇Linux,版本Ce ...
  • 解決vmware上ubuntu無法共用文件夾問題(ubuntu22.04) 第一步:設置共用文件夾 第二步:安裝open-vm-tools 1 sudo apt install open-vm-tools* 第三步:掛載文件夾 先查看設置的文件夾有沒有起效 1 vmware-hgfsclient 如 ...
  • Witch for Mac是mac上的一款優秀的視窗切換神器可讓您使用鍵盤快捷鍵執行Windows管理任務。通過應用程式的“首選項”視窗,您可以快速更改面板的外觀,預設顏色方案,項目的大小和字體等。使用Command + Tab鍵盤快捷鍵在應用程式之間快速切換非常有效。 詳情:Witch for M ...
  • 最近在搞一個轉換板開發,大概意思把CAN信號轉換成SPI信號,方案有兩種:1)通過硬體電路直接把信號的bit位一位一位移給兩個集成晶元;2)通過MCU接收CAN信號,再把信號變數轉換成SPI信號發送給其他集成晶元,從而主MCU通過轉換板與其他晶元進行信息交互。目前我們採用的第二種方案,第二種方案實施 ...
  • 您是否花費數小時檢查客戶的PDF文件中的錯誤?別擔心Enfocus PitStop Pro 2022 for Mac版來幫你!Enfocus PitStop Pro 2022 Mac版是目前Adobe Acrobat PDF上最強大的PDF增強插件,主要用於檢查、編輯和批量修改PDF文件,是很多Ac ...
  • Mac上pdf編輯工具哪款好用?小編推薦PDF Expert mac版是一個MacOS上的pdf編輯工具,你可以使用它快速閱讀PDF文件,輕鬆完成PDF編輯工作。您只需點擊幾下即可編輯文字、更改圖片、填寫和簽署文檔。 詳情:PDF Expert for mac(pdf編輯工具) 軟體介紹 PDF E ...
  • 本文簡介 點贊 + 關註 + 收藏 = 學會了 首先,解答一下標題:Object.defineProperty 不能監聽原生數組的變化。如需監聽數組,要將數組轉成對象。 在 Vue2 時是使用了 Object.defineProperty 監聽數據變化,但我查了下 文檔,發現 Object.defi ...
  • CSS進階內容——佈局技巧和細節修飾 我們在之前的文章中已經掌握了CSS的大部分內容,但仍有一些內容我們沒有涉略,這篇文章就是為了補充前面沒有涉及的內容,為我們的知識做出補充並且介紹一些佈局技巧 當然,如果沒有學習之前的知識,可以到我的主頁中查看之前的文章:秋落雨微涼 - 博客園。 元素的顯示與隱藏 ...
一周排行
    -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 ...