vue3+vite+ts中批量全局注册组件

前言

Vue3中批量全局祖册组件
学习的时候顺便记录一下,用于个人学习使用vite+vue3+ts,如果想直接看批量注册全局组件的,看文章目录,直接点目录跳转即可

在vue中,我们在main.ts引入的全局注册的组件是可以不需要import导入而直接使用的。使用的时候是自己全局注册组件时的名称,而不是组件名。

你是否还在一个个按需引用,如果使用vue3这些烦恼可以抛掷脑后。

一串代码解决所有。

import.meta.glob("./path/**/*.vue") 如这里:查找当前目录下的path目录下和(path目录下的子目录中的)以(点).vue结尾的文件

import.meta.glob("./path/*.vue") 如这里:查找当前目录下的path目录下的以(点).vue结尾的文件,不包括子目录中的文件

const componentss = import.meta.glob("./**/*.vue");

话不多说,直接上代码,如下:

第一步先在自己组件包里新建ts文件。

第二步,把对应代码复制进ts文件里

代码在这

import type { App } from 'vue'
import { defineAsyncComponent } from "vue";
import type { AsyncComponentLoader } from "vue"; // vue3+ts+vite 加上type,不然会报错。
const componentss = import.meta.glob("./**/*.vue");//全局这个无论多少层级
console.log(componentss)
console.log(Object.entries(componentss))

/**
 * 全局组件引用管理
 */
export default {
  install(app: App) {
    for (const [key, value] of Object.entries(componentss)) {
      // 字符串截取,具体看下面console.log()中的name就知道了
      const name = key.slice(key.lastIndexOf("/") + 1, key.lastIndexOf("."));
      console.log(name,value)
      console.log(`注意这里的name名称=》》            ${name}       ===>这个名称,
      自己作为了全局祖册组件的名称了,也就是如左侧目录的:aaa.vue去掉.vue就剩下aaa了
      ,然后那这个名称作为组件引用的名称,具体看截图就知道了。这时就是相当于跟左侧
      项目目录的.vue结尾的文件去掉.vue得到的名称`)
      app.component(name, defineAsyncComponent(value as AsyncComponentLoader));
    }      
  }
}

最后一步 找到main.ts 进行全局注册

代码如下: 结束

import 'amfe-flexible';
import { createPinia } from 'pinia';
import { createApp } from 'vue';

import router from './router/index';

import App from './App.vue';

import 'vant/lib/index.css';

// 引入ts文件对应的全局注册的组件的配置
import components from './views/homePage/templateCollection/myComponents';

// 对ts文件中的全局组件进行配置

const app = createApp(App)
app.use(components)
app.use(createPinia())
app.use(router)

app.mount('#app')

码字不易,给个心心~。哈哈哈哈~

有问题欢迎留言,随时解答。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于Vue 3 + Vite + TypeScript实现PC端适配,你可以遵循以下步骤: 1. 安装Vue 3和Vite:首先,确保你已经安装了Node.js和npm。然后运行以下命令来全局安装Vite和创建一个新的项目: ``` npm install -g create-vite create-vite my-app --template vue-ts cd my-app npm install ``` 2. 安装依赖:进入项目目录后,使用npm安装所需的依赖项,包括一些可能用到的UI库或CSS框架,例如Element Plus、Ant Design等等。 3. 创建布局组件:在src目录下创建一个Layout组件,作为整个应用的主要容器。这个组件将包含头部、侧边栏和主体内容。 4. 使用路由:在src目录下创建一个router目录,并在其创建一个index.ts文件。在这个文件,你可以使用Vue Router创建路由配置,并在主要布局组件使用<router-view>来渲染不同的页面。 5. 创建页面组件:在src目录下创建一个views目录,并在其创建各个页面的组件。每个页面组件将包含该页面的内容。 6. 创建样式文件:你可以使用CSS、SCSS或者其他CSS预处理器来编写样式。在src目录下创建一个styles目录,并在其创建一个全局样式文件。 7. 实现响应式布局:Vue 3引入了Composition API,你可以使用`reactive`和`ref`等函数来处理响应式布局。根据不同的屏幕尺寸,你可以使用媒体查询或CSS框架的栅格系统来调整布局。 8. 添加适配代码:你可以使用Vue全局mixin或自定义指令来添加适配代码。在适配代码,你可以根据屏幕尺寸或其他条件,动态改变样式、布局或内容。 以上是一个大致的步骤,你可以根据实际需求和项目的复杂性进行调整。希望对你有所帮助!如果有任何问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值