方式1-使用import.meta.glob

同webpack的 require.context一样,这个是vite提供的一个方法

import { createApp, defineAsyncComponent } from 'vue'

const app = createApp(App);
app.mount('#app'); // antd全局使用图标,遍历引入
const icons: any = Icons
for (const i in icons) {
app.component(i, icons[i])
} // 注册全局组件
const requireModules = import.meta.glob('./components/**.vue', { eager: true });
for (const path in requireModules) {
const moduleName = path.match(/.*\/(.+).vue$/)[1];
const moduleConent = requireModules[path].default;
console.log(moduleName, defineAsyncComponent(moduleConent));
app.component(moduleName, defineAsyncComponent(moduleConent));
}

注意

import.meta.glob可以接受一个参数,来做个对比

同步

const requireModules = import.meta.glob('./modules/**/*.ts', { eager: true });
for (const path in requireModules) {
const moduleConent= requireModules[path];
console.log(moduleConent.default);
}

异步

const requireModules = import.meta.glob('./modules/**/*.ts');
for (const path in requireModules) {
const moduleConent= requireModules[path];
moduleConent().then((mod) => {
console.log('moduleConent', mod.default);
})
}

方式2-使用unplugin-vue-components

安装依赖

yarn add --dev unplugin-vue-components

vite.config.js

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import Components from "unplugin-vue-components/vite"; // 按需加载自定义组件 // https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
Components({
// 按需引入
dts: true,
dirs: ["src/components"]
}),
],
});

vite vue3 全局批量注册组件的更多相关文章

  1. 在vite中怎么批量注册组件

    1. 在webpack中使用require来获取组件 / 参数:1. 目录 2. 是否加载子目录 3. 加载的正则匹配 //匹配当前文件夹下的所有.vue文件 注册全局组件 const importF ...

  2. Vue 全局注册逐渐 和 局部注册组件

    //定义一个名为 button-counter 的新组件 Script: Vue.component('button-counter',{//button-counter 这个是组件的名字 data: ...

  3. vux 全局注册组件

    背景:调试better-scroll的时候进行封装,作为组件来调用: 希望:全局注册组件: 1,在src的main.js下: 这样就可以用了:

  4. Vue 批量注册局部组件及应用

    博客地址:https://ainyi.com/105 批量注册路由的有个博客说到:https://ainyi.com/77 实际工作中,可能会遇到一个大页面里面有很多个模块,这些模块一般是需要拆分到单 ...

  5. 基于 vite 创建 vue3 全家桶项目(vite + vue3 + tsx + pinia)

    vite 最近非常火,它是 vue 作者尤大神发布前端构建工具,底层基于 Rollup,无论是启动速度还是热加载速度都非常快.vite 随 vue3 正式版一起发布,刚开始的时候与 vue 绑定在一起 ...

  6. Vue3 企业级优雅实战 - 组件库框架 - 5 组件库通用工具包

    该系列已更新文章: 分享一个实用的 vite + vue3 组件库脚手架工具,提升开发效率 开箱即用 yyg-cli 脚手架:快速创建 vue3 组件库和vue3 全家桶项目 Vue3 企业级优雅实战 ...

  7. Vue3全局APi解析-源码学习

    本文章共5314字,预计阅读时间5-15分钟. 前言 不知不觉Vue-next的版本已经来到了3.1.2,最近对照着源码学习Vue3的全局Api,边学习边整理了下来,希望可以和大家一起进步. 我们以官 ...

  8. Vue3 企业级优雅实战 - 组件库框架 - 7 组件库文档的开发和构建

    该系列已更新文章: 分享一个实用的 vite + vue3 组件库脚手架工具,提升开发效率 开箱即用 yyg-cli 脚手架:快速创建 vue3 组件库和vue3 全家桶项目 Vue3 企业级优雅实战 ...

  9. [PHP]全局使用 Composer 组件的思路

    /** * 全局使用 composer 组件的步骤: * * 1. 建一个包含所有需要全局使用的composer包的项目. * 如:globalVendor/ * composer init 初始化 ...

  10. VueJs(8)---组件(注册组件)

    组件(注册组件) 一.介绍 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树 那么什么是组件呢? 组 ...

随机推荐

  1. 36条技巧优化PHP代码(总结)

    原文:38条技巧优化PHP代码 1.如果一个方法能被静态,那就声明他为静态的,速度可提高1/4; 2.echo的效率高于print,因为echo没有返回值,print返回一个整型; 3.在循环之前设置 ...

  2. kali 2020使用SSH进行远程登录

    修改sshd_config文件,命令为: vi /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是 ...

  3. Cline技术分析:基于Cline Prompt的File Tools MCP Server实现

    我们将基于Cline prompt技术,构建一个基于MCP协议的文件工具服务器.我们将从任务定义开始,并在任务执行过程中探讨各个关键环节. 任务提示词定义 1. 访问[hub.gitmirror.co ...

  4. Lucas 定理简单证明

    前言 Oi wiki 和网上博客的证明都没完全看懂,最后还是自己推出来的..这里记录一下思路. Lucas 定理 对于质数 \(p\),$${n\choose m}\bmod p={\lfloor n ...

  5. 勒索病毒分析-2024wdb-re2

    检查相关信息 可以看到病毒存在VMProtect虚拟壳 简单脱壳 首先我在x64debug中运行一次,发现没有中断退出,证明大概率没有反调试,但是有crc检测,所以尽量不下int3断点(脱壳时). 一 ...

  6. Coze 初体验之打造专属的编程助手

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  7. D3Shop框架介绍:一个现代化的电商系统解决方案

    D3Shop框架介绍:一个现代化的电商系统解决方案 摘要:D3Shop是一个基于.NET Core 9.0和Vben-Admin的现代化电商系统框架,采用领域驱动设计(DDD)的思想构建.本文将从整体 ...

  8. MacOS M1 安装python3.5

    因为没法通过brew直接安装python 3.5,因为brew库里已经没有这个版本的python了,因此只能曲线救国,大体流程: 安装brew 通过brew 安装 pyenv 然后通过pyenv 安装 ...

  9. MCP与华为云CSE珠联璧合,打造AI时代微服务生态引擎

    本文分享自华为云社区<MCP与华为云CSE珠联璧合,打造AI时代微服务生态引擎>,作者:华为云社区精选 从 AI 技术的"火热概念"到"实际业务的落地&quo ...

  10. RPC的通信流程

    核心原理:能否画张图解释下RPC的通信流程? RPC的全称是Remote Procedure Call,即远程过程调用.RPC帮助我们屏蔽网络编程细节,实现调用远程方法跟调用本地(同一个项目中的方法) ...