vue3+vite 批量引入局部组件及使用

目录结构

批量引入组件

例如:src/views/oss/components/customComponents.ts

import { ref, defineAsyncComponent, markRaw } from 'vue';const modules = import.meta.glob('./*.vue');//这告诉 TypeScript,components.value 是一个键为字符串、值为 defineAsyncComponent 返回类型的对象。
const components = ref<Record<string, ReturnType<typeof defineAsyncComponent>>>({});Object.entries(modules).forEach(([path, asyncCom]) => {const name = path.replace(/\.\/(.*)\.vue/, '$1');components.value[name] = markRaw(defineAsyncComponent(asyncCom));
});export default components

 动态使用组件

<template><div v-for="(item, index) in componentList" :key="index"><component :is="customComponents[item]"></component></div>
</template><script setup name="Oss" lang="ts">import customComponents from "./components/customComponents"const componentList: any = ref(['comp1' ,'comp-test' ,'Comp2' ,'CompTest2']);
</script>

或者单个使用

<template><component :is="customComponents['comp1']"></component><component :is="customComponents['Comp2']"></component><component :is="customComponents['comp-test']"></component><component :is="customComponents['CompTest2']"></component>
</template><script setup name="Oss" lang="ts">import customComponents from "./components/customComponents"
</script>

错误使用

注意:封装的批量方法仅仅只作用于批量引入组件,并未将其注册为全局组件,所以不能将其直接以组件形式使用

<template><comp1 /><Comp2 /><comp-test /><CompTest2 />
</template>

控制台会报出以下警告

index.vue:370  [Vue warn]: Failed to resolve component: comp1
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/234253.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

精彩回顾|迪捷软件先进装备软件技术研讨会之行圆满收官

2023年11月24日&#xff0c;为期3个月的先进装备软件高安全、高可靠、智能化验证技术系列研讨会在成都圆满收官。迪捷软件董事长康烁作为研讨会特邀专家&#xff0c;在西安、上海、成都站进行了演讲分享。 以航空航天、船舶、电力电子、汽车、医疗为代表的先进装备软件发展迅速…

KMP基础架构

前言 Kotlin可以用来开发全栈, 我们所熟悉的各个端几乎都支持(除了鸿蒙) 而我们要开发好KMP项目需要一个好的基础架构,这样不仅代码更清晰,而且能共享更多的代码 正文 我们可以先将KMP分为前端和服务端 它们两端也能共享一些代码,比如接口声明,bean类,基础工具类等 前端和…

数字系列——数字经济

数字经济是全球经济未来发展方向&#xff0c;正在成为重组全球要素资源、重塑全球经济结构、改变全球竞争格局的关键力量。都知道数字经确实很重要&#xff0c;但有些人还傻傻搞不懂数字经济到底是什么&#xff1f;小编今天就给大家捋一捋。 什么是数字经济&#xff1f; 数字经…

支持中文,性能超GPT-4!笑脸排名第一的纯代码模型

生成式AI代码开发平台Phind在官网发布了最新V7版本&#xff0c;性能方面超越GPT-4&#xff0c;运行效率提升了5倍&#xff0c;并且支持中文和16K超长上下文。 据悉&#xff0c;Phind V7是基于Phind的开源代码模型CodeLlama-34B V2&#xff0c;以及700亿个高质量代码和推理问题…

如何获取阿里巴巴中国站按图搜索1688商品(拍立淘) API接口(item_search_img-按图搜索1688商品(拍立淘))

一、背景介绍 阿里巴巴中国站作为中国领先的B2B电子商务平台&#xff0c;提供了大量的商品信息和交易服务。其中&#xff0c;按图搜索1688商品&#xff08;拍立淘&#xff09;是阿里巴巴中国站特有的功能之一&#xff0c;它可以通过上传图片来搜索与图片相似的商品&#xff0c…

Echarts大屏可视化_04 横向柱状图模块的引入和开发

模块的引入 1.寻找官方示例引入 ECharts官方实例入口 2.引入示例 ECharts 示例 可从这里直接进入 标题、提示信息、图例都不需要所以直接删掉 <div class"column"><div class"panel bar2"><h2>柱状图-技能掌握</h2><div cla…

基于Loki + Promtail + Grafana 搭建 Nginx 日志监控

文章目录 引言第一部分&#xff1a;Loki 简介与安装1.1 Loki 简介1.2 Loki 安装1.2.1 下载 Loki1.2.2 安装 Loki 1.3 启动 Loki 第二部分&#xff1a;Promtail 简介与安装2.1 Promtail 简介2.2 Promtail 安装2.2.1 下载 Promtail2.2.2 安装 Promtail 2.3 启动 Promtail 第三部分…

高并发架构——网页爬虫设计:如何下载千亿级网页?

Java全能学习面试指南&#xff1a;https://javaxiaobear.cn 在互联网早期&#xff0c;网络爬虫仅仅应用在搜索引擎中。随着大数据时代的到来&#xff0c;数据存储和计算越来越廉价和高效&#xff0c;越来越多的企业开始利用网络爬虫来获取外部数据。例如&#xff1a;获取政府公…

onlyoffice文件大小超出了服务器设置处理

onlyoffice文件大小超出了服务器设置处理 1.前言2. onlyoffice服务安装2.1 docker安装命令2.2 访问测试 3. 修改服务器文件大小限制方案3.1 旧方案-7.2版本不可行3.1.1 进入 OnlyOffice Document Server 容器3.1.2 编辑配置文件3.1.3 找到并修改文件大小限制3.1.4 保存并退出编…

深眸科技加速进入深度学习赛道,以开创思维引领制造企业智慧升级

在工业4.0的浪潮下&#xff0c;工业企业亟需向高端化、自动化、智能化转型&#xff0c;以应对大批量精密产品的质量控制需求。这些产品对质量有着极高的要求&#xff0c;单凭传统机器视觉检测技术较难满足。 同时&#xff0c;随着大数据的不断涌现及计算机算力的稳步提升&…

焕发图片生机,批量升级gif图片像素,打造高质量图片盛宴!

你是否曾经遇到过需要提高gif图片质量&#xff0c;但手动处理每一张图片又非常耗时且繁琐的情况&#xff1f;如果你觉得处理大量图片会让你感到压力&#xff0c;那么你一定需要我们的批量提高像素工具&#xff01; 第一步&#xff0c;首先我们要进入首助剪辑高手主页面&#x…

TR转发路由器测评—云企业网实现跨地域跨VPC的网络互通测评实战【阿里云产品测评】

文章目录 一.转发路由器 Transit Router 测评1.1 准备阶段1.2 本文测评收获1.3 什么是云企业网实例、转发路由器实例和云数据传输服务 二.使用云企业网实现跨地域跨VPC的网络互通2.2 **测试连通性**2.3 网络拓扑如下&#xff1a; 心得&#xff1a;总结&#xff1a; 声明&#x…