Vite+Vue3的組件自動(dòng)注冊(cè)功能解讀
實(shí)現(xiàn)一個(gè)基于 Vite + Vue3 的組件自動(dòng)注冊(cè)功能,能讓你無需手動(dòng) import 和注冊(cè)組件,直接在模板中使用。
實(shí)現(xiàn)思路
- 使用 Vite 的 import.meta.glob 方法批量導(dǎo)入指定目錄下的所有組件
- 創(chuàng)建一個(gè)組件注冊(cè)插件,自動(dòng)全局注冊(cè)所有導(dǎo)入的組件
- 提供組件使用示例和目錄結(jié)構(gòu)規(guī)范
完整實(shí)現(xiàn)代碼
1. 組件自動(dòng)注冊(cè)插件 (src\components\common\index.js)
/**
* 全局公共組件自動(dòng)注冊(cè)
* 自動(dòng)注冊(cè)src/components/common目錄下的所有組件
*/
// 導(dǎo)入所有公共組件
import JmForm './JmForm .vue'
import JmTable from './JmTable.vue'
/**
* 自動(dòng)導(dǎo)入并注冊(cè)組件
* @param {Object} app - Vue應(yīng)用實(shí)例
* @param {Array} exclude - 排除的組件名稱列表
*/
export function registerCommonComponents(app, exclude = []) {
// 組件列表
const components = {
JmForm ,
JmTable
}
// 注冊(cè)所有組件
Object.entries(components).forEach(([name, component]) => {
// 檢查是否在排除列表中
if (exclude.includes(name)) {
return
}
// 全局注冊(cè)組件
app.component(name, component)
})
}
export default {
registerCommonComponents
}
2. 入口文件引入插件 (src/main.js)
// 導(dǎo)入全局公共組件自動(dòng)注冊(cè)
import { registerCommonComponents } from './components/common';
3. 寫一個(gè)組件頁面
直接使用組件 (src/App.vue) 無需引入
<template> <!-- 無需import,直接使用 --> <jm-form v-model="form" :items="items" /> <jm-table :data="list" :columns="columns" /> </template>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vite+vue3+pinia實(shí)現(xiàn)動(dòng)態(tài)注冊(cè)懶加載路由教程
- vue3+vite+JS使用Echarts封裝一個(gè)餅圖完整代碼(父子組件聯(lián)動(dòng))
- Vue3+Vite實(shí)現(xiàn)一個(gè)Markdown編輯器組件
- vite5+vue3+?import.meta.glob動(dòng)態(tài)導(dǎo)入vue組件圖文教程
- vite+vue3項(xiàng)目中svg圖標(biāo)組件封裝的過程詳解
- vue3+vite+ts父子組件之間的傳值
- 解決vue3+vite配置unplugin-vue-component找不到Vant組件
相關(guān)文章
Vue/React子組件實(shí)例暴露方法(TypeScript)
最近幾個(gè)月都在用TS開發(fā)各種項(xiàng)目,框架有涉及到Vue3,React18等,記錄一下Vue/React組件暴露出變量/函數(shù)的方法的寫法,對(duì)vue?react組件暴露方法相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧2022-11-11
前端項(xiàng)目中如何使用百度地圖api(含實(shí)例)
當(dāng)我們遇到定位展示的時(shí)候會(huì)出現(xiàn)使用地圖展示的需求,下面這篇文章主要給大家介紹了關(guān)于前端項(xiàng)目中如何使用百度地圖api(含實(shí)例)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
vue3前端axios請(qǐng)求報(bào)錯(cuò)network錯(cuò)誤的解決辦法
在使用Axios進(jìn)行網(wǎng)絡(luò)請(qǐng)求時(shí),遇到“Network?Error”報(bào)錯(cuò)可能是由多種原因?qū)е碌?這篇文章主要介紹了vue3前端axios請(qǐng)求報(bào)錯(cuò)network錯(cuò)誤的解決辦法,需要的朋友可以參考下2025-08-08
腳手架vue-cli工程webpack的作用和特點(diǎn)
webpack是一個(gè)模塊打包的工具,它的作用是把互相依賴的模塊處理成靜態(tài)資源。這篇文章主要介紹了vue-cli工程webpack的作用和特點(diǎn),需要的朋友可以參考下2018-09-09
談一談vue請(qǐng)求數(shù)據(jù)放在created好還是mounted里好
這篇文章主要介紹了談一談vue請(qǐng)求數(shù)據(jù)放在created好還是mounted里好的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
詳解@Vue/Cli 3 Invalid Host header 錯(cuò)誤解決辦法
這篇文章主要介紹了詳解@Vue/Cli 3 Invalid Host header 錯(cuò)誤解決辦法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01

