Vue自動(dòng)生成組件示例總結(jié)
unplugin-generate-component-name一款用于以文件夾名或者setup標(biāo)簽寫(xiě)入名字來(lái)自動(dòng)生成Vue組件名的插件。
功能
- ?? 支持 Vue 3 開(kāi)箱即用。
- ?? 支持 Vite、Webpack、Rspack、Vue CLI、Rollup、esbuild 等,由 unplugin 提供支持。
- ?? 支持文件夾名稱(chēng)和 Setup extend 兩種模式。
- ?? 完全支持 TypeScript。
安裝
# Yarn $ yarn add unplugin-generate-component-name -D # pnpm $ pnpm i unplugin-generate-component-name -D
Vite 配置
// vite.config.ts import GenerateComponentName from 'unplugin-generate-component-name/vite' export default defineConfig({ plugins: [ GenerateComponentName({ /* options */ }), ], })
Rollup 配置
// rollup.config.js import GenerateComponentName from 'unplugin-generate-component-name/rollup' export default { plugins: [ GenerateComponentName({ /* options */ }), ], }
Webpack 配置
// webpack.config.js module.exports = { /* ... */ plugins: [ require('unplugin-generate-component-name/webpack').default({ /* options */ }), ], }
使用方法(開(kāi)箱即用)
文件夾名稱(chēng)
你可以使用index組件所在的文件夾名作為組件的名字。
自動(dòng)生成 Vue 組件名稱(chēng)
在Vue中,我們可以使用unplugin-generate-component-name
插件自動(dòng)基于目錄名稱(chēng)生成組件名稱(chēng)。這個(gè)插件使得在大型代碼庫(kù)中找到和管理組件更加容易和直觀。例如,假設(shè)我們有一個(gè)Vue組件名為Index.vue
,此組件在Home
目錄中。通過(guò)unplugin-generate-component-name
插件,此組件會(huì)自動(dòng)命名為Home
。
src/home/ ├── index.vue // 組件名稱(chēng)是 Home ├── about.vue └── users/ ├── index.vue // 組件名稱(chēng)是 Users └── info.vue
Setup Extend
在<script setup>
標(biāo)簽中,我們?cè)O(shè)置了 name 屬性為 "Home"。這顯式地將組件命名為 "Home",unplugin-generate-component-name
插件會(huì)使用這個(gè)名字而不是 "Index"。
<template> <!-- 你的組件標(biāo)記 --> </template> <script setup name="Home"> // 你的腳本邏輯 </script> <style> <!-- 你的組件樣式 --> </style>
選項(xiàng)
type GenComponentName = (opt: { filePath: string; dirname: string; originalName: string; attrName: string | undefined; }) => string; interface PattenOptions { include?: string | RegExp | (string | RegExp)[]; exclude?: string | RegExp | (string | RegExp)[]; genComponentName: GenComponentName; } interface Options extends Omit<PattenOptions, 'genComponentName'> { enter?: PattenOptions[]; }
include
include
選項(xiàng)能夠明確說(shuō)明哪些文件應(yīng)被包含在組件名稱(chēng)的自動(dòng)創(chuàng)建過(guò)程中。
exclude
exclude
選項(xiàng)則用于指明哪些文件應(yīng)排除在組件名稱(chēng)的自動(dòng)創(chuàng)建過(guò)程之外。
enter
在Options
接口中,有一個(gè)enter
選項(xiàng)。enter
是一個(gè)數(shù)組,該數(shù)組中每個(gè)對(duì)象都被視作一種特定的規(guī)則用于處理不同的文件路徑。
每一種規(guī)則都可以包含include
和exclude
選項(xiàng),用以指明哪些文件是應(yīng)特別對(duì)待的。你也可以要求對(duì)genComponentName
函數(shù)進(jìn)行特定的設(shè)置,以達(dá)到自定義組件名稱(chēng)生成的效果。
下面是一個(gè)例子:
// vite.config.ts import GenerateComponentName from 'unplugin-generate-component-name/vite' export default defineConfig({ plugins: [ GenerateComponentName({ include: ['**/*.vue'], enter: [{ include: ["**/*index.vue"], genComponentName: ({ attrName, dirname }) => attrName ?? dirname }, { exclude: ['**/*.index.vue'], include: ["src/components/**/*.vue"], genComponentName: ({ dirname, originalName }) => `${dirname}-${originalName}` }] }), ], });
在這個(gè)例子中,unplugin-generate-component-name
插件被配置為處理所有的 .vue 文件。在enter
選項(xiàng)中有兩個(gè)對(duì)象適用于不同的文件路徑:
- 第一個(gè)對(duì)象覆蓋所有以
"index.vue"
結(jié)尾的文件。genComponentName
函數(shù)返回組件名稱(chēng)。如果script setup 標(biāo)簽
中已經(jīng)指定了名稱(chēng)
,那么優(yōu)先級(jí)將會(huì)很高; 如果沒(méi)有,文件夾名稱(chēng)(dirname
)就將會(huì)使用。 - 第二個(gè)對(duì)象排除了所有以
"index.vue"
結(jié)尾的文件, 僅包括"src/components/"
目錄下的.vue
文件。genComponentName
函數(shù)用來(lái)以${dirname}-${originalName}
的格式生成組件名。例如,對(duì)于一個(gè)名為src/component/Button
中的MyButton.vue
文件,它將會(huì)是Button-MyButton
。
到此這篇關(guān)于Vue自動(dòng)生成組件名 的文章就介紹到這了,更多相關(guān)Vue自動(dòng)生成組件名 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue默認(rèn)插槽,具名插槽,作用域插槽定義及使用方法
這篇文章主要介紹了Vue默認(rèn)插槽,具名插槽,作用域插槽定義及使用方法,插槽的作用是在子組件中某個(gè)位置插入父組件的自定義html結(jié)構(gòu)和data數(shù)據(jù),下面詳細(xì)內(nèi)容需要的小伙伴可以參考一下2022-03-03vue一步到位的實(shí)現(xiàn)動(dòng)態(tài)路由
這篇文章主要介紹了vue一步到位的實(shí)現(xiàn)動(dòng)態(tài)路由,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06關(guān)于Vue 自定義指令實(shí)現(xiàn)元素拖動(dòng)的詳細(xì)代碼
這篇文章主要介紹了Vue 自定義指令實(shí)現(xiàn)元素拖動(dòng),在使用自定義指令之前,先對(duì)自定義指令有一定的了解,主要從自定義指令定義范圍,鉤子函數(shù)方面入手,需要的朋友可以參考下2022-01-01vue3項(xiàng)目中的el-carousel 輪播圖的使用
Carousel(走馬燈)是一種常見(jiàn)的前端組件,通常用于展示多個(gè)項(xiàng)目(通常是圖片或內(nèi)容塊)的輪播效果,這篇文章主要介紹了vue3項(xiàng)目中的el-carousel 輪播圖的使用,需要的朋友可以參考下2024-02-02vue實(shí)現(xiàn)自定義公共組件及提取公共的方法
這篇文章主要介紹了vue實(shí)現(xiàn)自定義公共組件及提取公共的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05關(guān)于vue項(xiàng)目vue-cli-service啟動(dòng)報(bào)錯(cuò)失敗問(wèn)題的解決方法
前端拉取代碼后,想要運(yùn)行代碼的時(shí)候可以能遇到啟動(dòng)報(bào)錯(cuò)的問(wèn)題,這里我們只針對(duì)于vue-cli-service報(bào)錯(cuò)項(xiàng)來(lái)說(shuō),文中通過(guò)圖文結(jié)合的方式給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-08-08