最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue自動(dòng)生成組件示例總結(jié)

 更新時(shí)間:2023年12月23日 09:44:36   作者:林恒  
在Vue中,我們可以使用unplugin-generate-component-name插件自動(dòng)基于目錄名稱生成組件名稱,這個(gè)插件使得在大型代碼庫(kù)中找到和管理組件更加容易和直觀,這篇文章主要介紹了Vue自動(dòng)生成組件示例總結(jié),需要的朋友可以參考下

unplugin-generate-component-name一款用于以文件夾名或者setup標(biāo)簽寫入名字來(lái)自動(dòng)生成Vue組件名的插件。

項(xiàng)目地址

功能

  • ?? 支持 Vue 3 開(kāi)箱即用。
  • ?? 支持 Vite、Webpack、Rspack、Vue CLI、Rollup、esbuild 等,由 unplugin 提供支持。
  • ?? 支持文件夾名稱和 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)箱即用)

文件夾名稱

你可以使用index組件所在的文件夾名作為組件的名字。

自動(dòng)生成 Vue 組件名稱

在Vue中,我們可以使用unplugin-generate-component-name插件自動(dòng)基于目錄名稱生成組件名稱。這個(gè)插件使得在大型代碼庫(kù)中找到和管理組件更加容易和直觀。例如,假設(shè)我們有一個(gè)Vue組件名為Index.vue,此組件在Home目錄中。通過(guò)unplugin-generate-component-name插件,此組件會(huì)自動(dòng)命名為Home

src/home/
├── index.vue // 組件名稱是 Home
├── about.vue
└── users/
    ├── index.vue // 組件名稱是 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)被包含在組件名稱的自動(dòng)創(chuàng)建過(guò)程中。

exclude

exclude選項(xiàng)則用于指明哪些文件應(yīng)排除在組件名稱的自動(dòng)創(chuàng)建過(guò)程之外。

enter

Options接口中,有一個(gè)enter選項(xiàng)。enter是一個(gè)數(shù)組,該數(shù)組中每個(gè)對(duì)象都被視作一種特定的規(guī)則用于處理不同的文件路徑。

每一種規(guī)則都可以包含includeexclude選項(xiàng),用以指明哪些文件是應(yīng)特別對(duì)待的。你也可以要求對(duì)genComponentName函數(shù)進(jìn)行特定的設(shè)置,以達(dá)到自定義組件名稱生成的效果。

下面是一個(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ù)返回組件名稱。如果script setup 標(biāo)簽中已經(jīng)指定了名稱,那么優(yōu)先級(jí)將會(huì)很高; 如果沒(méi)有,文件夾名稱(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)文章

  • 深入學(xué)習(xí)Vue nextTick的用法及原理

    深入學(xué)習(xí)Vue nextTick的用法及原理

    這篇文章主要介紹了深入學(xué)習(xí)Vue nextTick的用法及原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Vue3中ref和reactive的區(qū)別及說(shuō)明

    Vue3中ref和reactive的區(qū)別及說(shuō)明

    在Vue3中,ref主要用于基本數(shù)據(jù)類型和單個(gè)數(shù)據(jù)管理,需要用.value訪問(wèn),reactive適用于對(duì)象和多數(shù)據(jù)管理,直接訪問(wèn)屬性,ref支持解構(gòu)保持響應(yīng)性,reactive解構(gòu)后失去響應(yīng)性,選擇合適的方法可以使代碼更優(yōu)化
    2024-11-11
  • 使用Vue3創(chuàng)建多布局系統(tǒng)的三種方法

    使用Vue3創(chuàng)建多布局系統(tǒng)的三種方法

    布局是中大型網(wǎng)站或應(yīng)用的基礎(chǔ),假設(shè)你正在創(chuàng)建一個(gè)網(wǎng)頁(yè)應(yīng)用,它包括主頁(yè)、營(yíng)銷頁(yè)面和應(yīng)用頁(yè)面,你不會(huì)想要為每一頁(yè)重復(fù)所有的工作,對(duì)吧,與Nuxt不同,Vue 3并沒(méi)有內(nèi)置的布局系統(tǒng),但是別擔(dān)心,這里將向你展示3種簡(jiǎn)單的方法來(lái)實(shí)現(xiàn)這一點(diǎn),需要的朋友可以參考下
    2023-08-08
  • vue調(diào)用語(yǔ)音播放的方法

    vue調(diào)用語(yǔ)音播放的方法

    這篇文章主要為大家詳細(xì)介紹了vue調(diào)用語(yǔ)音播放的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Vue使用輪詢定時(shí)發(fā)送請(qǐng)求代碼

    Vue使用輪詢定時(shí)發(fā)送請(qǐng)求代碼

    這篇文章主要介紹了Vue使用輪詢定時(shí)發(fā)送請(qǐng)求代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • 解決vue中的無(wú)限循環(huán)問(wèn)題

    解決vue中的無(wú)限循環(huán)問(wèn)題

    這篇文章主要介紹了解決vue中的無(wú)限循環(huán)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • vue2中seo時(shí)使用vue-meta-info的方法

    vue2中seo時(shí)使用vue-meta-info的方法

    這篇文章主要介紹了vue2中seo時(shí)使用vue-meta-info,本文通過(guò)實(shí)例代碼給大家詳細(xì)講解,文末給大家補(bǔ)充介紹了vue seo管理 vue-meta-info 動(dòng)態(tài)設(shè)置meta和title的相關(guān)知識(shí),需要的朋友可以參考下
    2022-10-10
  • Vue項(xiàng)目中SVG圖標(biāo)的完整管理方案

    Vue項(xiàng)目中SVG圖標(biāo)的完整管理方案

    這篇文章主要介紹了SVG圖標(biāo)管理的優(yōu)勢(shì),存儲(chǔ)結(jié)構(gòu),加載與注冊(cè)機(jī)制,配置,組件實(shí)現(xiàn),完整處理流程,優(yōu)化配置以及在項(xiàng)目中的使用,需要的朋友可以參考下
    2026-01-01
  • 原生JS?Intersection?Observer?API實(shí)現(xiàn)懶加載

    原生JS?Intersection?Observer?API實(shí)現(xiàn)懶加載

    這篇文章主要為大家介紹了原生JS?Intersection?Observer?API實(shí)現(xiàn)懶加載示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 淺談VUE防抖與節(jié)流的最佳解決方案(函數(shù)式組件)

    淺談VUE防抖與節(jié)流的最佳解決方案(函數(shù)式組件)

    這篇文章主要介紹了淺談VUE防抖與節(jié)流的最佳解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評(píng)論

武夷山市| 姚安县| 海丰县| 黔西县| 双鸭山市| 古交市| 尚志市| 万州区| 宜宾市| 措勤县| 色达县| 宁南县| 桐庐县| 惠水县| 璧山县| 枞阳县| 凉山| 太康县| 井冈山市| 图木舒克市| 石门县| 五莲县| 东丽区| 奉化市| 新安县| 土默特左旗| 读书| 黑水县| 大荔县| 阳新县| 阳高县| 鄂伦春自治旗| 莆田市| 陆川县| 韶山市| 江口县| 古蔺县| 苍梧县| 乃东县| 家居| 大理市|