记录--Vue自动生成组件名
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助
unplugin-generate-component-name
一款用于以文件夹名或者setup标签写入名字来自动生成Vue组件名的插件。
项目地址
功能
- 支持 Vue 3 开箱即用。
- ️ 支持 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 */ }),
- ],
- }
使用方法(开箱即用)
文件夹名称
- 你可以使用index组件所在的文件夹名作为组件的名字。
自动生成 Vue 组件名称
在Vue中,我们可以使用unplugin-generate-component-name
插件自动基于目录名称生成组件名称。这个插件使得在大型代码库中找到和管理组件更加容易和直观。例如,假设我们有一个Vue组件名为Index.vue
,此组件在Home
目录中。通过unplugin-generate-component-name
插件,此组件会自动命名为Home
。
- src/home/
- ├── index.vue // 组件名称是 Home
- ├── about.vue
- └── users/
- ├── index.vue // 组件名称是 Users
- └── info.vue
Setup Extend
在 <script setup>
标签中,我们设置了 name 属性为 "Home"。这显式地将组件命名为 "Home",unplugin-generate-component-name
插件会使用这个名字而不是 "Index"。
- <template>
- <!-- 你的组件标记 -->
- </template>
- <script setup name="Home">
- // 你的脚本逻辑
- </script>
- <style>
- <!-- 你的组件样式 -->
- </style>
选项
- 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
选项能够明确说明哪些文件应被包含在组件名称的自动创建过程中。
exclude
exclude
选项则用于指明哪些文件应排除在组件名称的自动创建过程之外。
enter
在 Options
接口中,有一个 enter
选项。enter
是一个数组,该数组中每个对象都被视作一种特定的规则用于处理不同的文件路径。
每一种规则都可以包含 include
和 exclude
选项,用以指明哪些文件是应特别对待的。你也可以要求对 genComponentName
函数进行特定的设置,以达到自定义组件名称生成的效果。
下面是一个例子:
- // 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}`
- }]
- }),
- ],
- });
在这个例子中,unplugin-generate-component-name
插件被配置为处理所有的 .vue 文件。在 enter
选项中有两个对象适用于不同的文件路径:
- 第一个对象覆盖所有以
"index.vue"
结尾的文件。genComponentName
函数返回组件名称。如果script setup 标签
中已经指定了名称
,那么优先级将会很高; 如果没有,文件夹名称(dirname
)就将会使用。 - 第二个对象排除了所有以
"index.vue"
结尾的文件, 仅包括"src/components/"
目录下的.vue
文件。genComponentName
函数用来以${dirname}-${originalName}
的格式生成组件名。例如,对于一个名为src/component/Button
中的MyButton.vue
文件,它将会是Button-MyButton
。
本文转载于:
https://juejin.cn/post/7314301236098269236
如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。
记录--Vue自动生成组件名的更多相关文章
- Unity 自动生成组件索引类工具
Unity 自动生成组件索引类工具 需求由来 我们在写UI类时 需要获取预设中的组件 joystick = transform.Find("joystick"); backgrou ...
- eclipse自动生成变量名声明(按方法返回值为本地变量赋值)
eclipse自动生成变量名声明(按方法返回值为本地变量赋值) ctrl+2+L 这个快捷键可自动补全代码,极大提升编码效率! 注:ctrl和2同时按完以后释放,再快速按L.不能同时按! 比如写这句代 ...
- vue动态生成组件
单个组件引用,引入此文件js.全局使用,注册到vue的main文件Vue.prototype.create = Create create.js import Vue from 'vue';impor ...
- vue 自动生成菜单
import constant from './const' export function getRouters (files) { let filenames = files.keys() let ...
- vite插件-自动生成vue组件文档
特点 支持热更新 快速启动,依赖于 vite,无需另起服务 自动生成组件导航 ui 采用了vant-ui的样式 核心方法覆盖率达到了 92.86% 使用 yarn add vite-plugin-vu ...
- 使用vue与element组件
1.安装element npm i element-ui -S 2.引入 在main.js写入一下内容 import Vue from 'vue'; import ElementUI from 'el ...
- vue自定义全局组件(自定义插件)
有时候我们在做开发的时候,就想自己写一个插件然后就可以使用自己的插件,那种成就感很强.博主最近研究element-ui和axios的时候,发现他们是自定义组件,但是唯一有一点不同的是,在用elemen ...
- Sqlalchemy model 文件自动生成
自动生成Sqlalchemy的models文件的包早用过了,有个字段类型做了改动,调了得10几分钟才搞定.记录下自动生成models文件的python包sqlacodegen sqlacodegen已 ...
- 简述vue中父子组件是怎样相互传递值的(基础向)
前言 首先,你需要知道vue中父组件和子组件分别指的是什么? 父组件:vue的根实例——用new Vue()构造函数创建的vue实例(实例会有一个挂载点,挂载点里的所有内容可理解为父组件的内容) ...
- Java代码自动生成,生成前端vue+后端controller、service、dao代码,根据表名自动生成增删改查功能
本项目地址:https://github.com/OceanBBBBbb/ocean-code-generator 项目简介 ocean-code-generator采用(适用): ,并使用m ...
随机推荐
- Word-批量导出Word中的图片
当我们需要把Word文件中的图片保存起来,你是如何导出Word图片呢?右键一张张保存图片吗?这效率太低了.如果文档中有大量的图片,这个方法会浪费很多时间. 下面给大家分享word如何批量导出图片的技巧 ...
- Hive实战
1.使用hive实现WordCount (1) 创建数据库 create database wordcount; (2) 创建外部表 create external table word_data(l ...
- 【译】.NET 8 网络改进(二)
原文 | Máňa,Natalia Kondratyeva 翻译 | 郑子铭 修改 HttpClient 日志记录 自定义(甚至简单地关闭)HttpClientFactory 日志记录是长期请求的功能 ...
- JS leetcode 拥有最多糖果的孩子 题解分析,六一快乐。
壹 ❀ 引 今天是六一儿童节,leetcode的每日一题也特别可爱,那么今天我们来解决一道与糖果有关的问题,题目来源1431. 拥有最多糖果的孩子,题目描述如下: 给你一个数组 candies 和一个 ...
- NAND Flash 寿命算法——Wear leveling
由于闪存的可擦写次数是有限的,当某些数据被频繁修改时容易导致对应的块很快被耗尽使用寿命,从而导致整块盘无法使用,所以需要有一种技术来将这些块的擦写均摊一下,延长使用寿命. 首先看几个相关的基本概念: ...
- Jenkins安装和Host key verification failed问题的处理
在Centos7上安装的Jenkins 2.303.1 命令行安装为服务 因为新版本的Jenkins的war是用java -jar启动, 并且无法后台运行, 所以要么通过screen创建一个sessi ...
- Java中“==”与equals()
1 前言 1.1 内存分区 Java中有6种存储区域(参考Java的六大存储区域),如下: 寄存器(register):位于处理器内部,处理速度最快,空间比较珍贵: 栈(stack):位于通用RAM中 ...
- IDEA从o开始的一系列操作及修改配置-快捷键汇总
IDEA从o开始的一系列操作及修改配置-快捷键汇总 下载IDEA 启动idea 安装svn插件 功能快捷键 先设置提示快捷键(纯属个人喜好) 入门快捷键 查找 编辑 小功能 自动代码提示 自动导包 T ...
- 编译 windows 上的 qt 静态库
记录命令行编译过程: 针对 Qt 5.15.2 版本, 只需要 Source 文件就行 打开 x86 Native Tools Command Prompt for VS 2019,如果需要编译 x6 ...
- ADVMP 三代壳(vmp加固)原理分析(执行流程)
由于在加壳时插入了System.loadLibrary("advmp");,看一下JNI_OnLoad JNIEXPORT jint JNICALL JNI_OnLoad(Java ...