iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue3全局组件自动注册功能实现
  • 745
分享到

vue3全局组件自动注册功能实现

vue3全局组件自动注册vue3注册全局组件vue3全局组件 2023-02-01 18:02:44 745人浏览 安东尼
摘要

目录vue3全局组件自动注册前言:补充: Vue3注册全局组件1.注册单个全局组件2.批量注册全局组件vue3全局组件自动注册 前言: 本文主要讲述vue3的全局公共组件的

vue3全局组件自动注册

前言:

本文主要讲述vue3的全局公共组件的自动注册

第一步:建文件

需要在src/components 下创建一个文件夹用于存放封装的公共组件(这里我起名叫coms)

需要在src/components 下创建一个js文件用于存放引入组件并注册(这里我起名叫Index.js)

第二步:写函数

在coms中建文件夹,将组件放入这个文件夹,此文件夹的名字就是我们将要注册组件的名字。

在Index.js中写入以下工具函数:

// 全局组件注册 需要到coms这个目录下注册
 
export default {
    install(app) {
        const req = require.context('./coms', true, /\.vue$/);
        req.keys().forEach((item) => {
            const defaultObj = req(item).default;
 
            let name = item.split('/')[1];
            // console.log('name', name);
            app.component(name, defaultObj);
        });
    }
};

注意:这里我没有用 defaultObj.__file 来取文件路径,是因为生产环境下__file属性会被删除,会导致如下报错

第三步:导入文件

在main.js中导入工具函数并挂载到app中

import coms from '@/components/Index'; //全局组件注册
app.use(coms);

第四步:全局使用

到这一步就可以全局用我们定义好的文件名作为组件名了。

ps:vue2其实也大差不差,就是吧app.use()改成了 Vue.use()

最后感谢大佬的指导 @一个好好的程序员

参考文献:

vue3全局组件注册

补充: Vue3注册全局组件

例如组件使用频率非常高,几乎每个页面都在使用便可以封装成全局组件

1.注册单个全局组件

在main.ts 引入我们的组件跟随在createApp(App) 后面 切记不能放到mount 后面这是一个链式调用用

其次调用 component 第一个参数组件名称 第二个参数组件实例

import { createApp } from 'vue'
import App from './App.vue'
import './assets/CSS/reset/index.less'
import Card from './components/Card/index.vue'
createApp(App).component('Card',Card).mount('#app') 
//.component('Card',Card)就是注册全局组件 (‘自定义键名',组件名)

使用方法

直接在其他vue页面 立即使用即可 无需引入

<template>
 <Card></Card>
</template>

2.批量注册全局组件

遇到要注册很多个全局组件时,可以定义中间件,让中间件去完成组件注册,然后main.js再引入使用这个中间件

src/components中新建index.ts用来将所有需要全局注册的组件导入

✨: 如果使用的是 JS 可以删除类型校验

import type { Component } from 'vue' //import type 是用来协助进行类型检查和声明的,在运行时是完全不存在的。

import SvgIcon from './SvgIcon/index.vue'

// ✨如果使用的是 JS 可以删除类型校验

const components: {

  [propName: string]: Component //字面量类型,每个属性值类型为组件的类型

} = {

  SvgIcon

}

export default components

2. 在main.ts中导入

✨这里使用循环的方式, 将每个全局组件进行注册

import { createApp } from 'vue'

import ElementPlus from 'element-plus'

import 'element-plus/dist/index.css' // 基于断点的隐藏类 Element 额外提供了一系列类名,用于在某些条件下隐藏元素

import App from './App.vue'

import router from './router'

import { store, key } from './store'

import globalComponent from '@/components/index' //引入需要注册的全部组件

const app = createApp(App)

app.use(store, key).use(router).use(ElementPlus)

// 注册全局的组件 (对所有需要注册的组件进行遍历并注册)

for (const componentItme in globalComponent) {

  app.component(componentItme, globalComponent[componentItme])

}

app.mount('#app') //需要注册完组件后才挂载

3. 如果使用TS编写,还需要在和main.ts同级的目录, 创建一个components.d.ts, 用来处理组件引入报错的问题和添加组件类型提示

import SvgIcon from '@/components/SvgIcon/index.vue'

//要扩充@vue/runtime-core包的声明

declare module '@vue/runtime-core' {

  export interface GlobalComponents { //这里扩充"ComponentCustomProperties"接口

    SvgIcon: typeof SvgIcon

  }

}

4. 最后直接导入即可

到此这篇关于vue3全局组件自动注册功能实现的文章就介绍到这了,更多相关vue3全局组件自动注册内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue3全局组件自动注册功能实现

本文链接: https://www.lsjlt.com/news/193893.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue3全局组件自动注册功能实现
    目录vue3全局组件自动注册前言:补充: Vue3注册全局组件1.注册单个全局组件2.批量注册全局组件vue3全局组件自动注册 前言: 本文主要讲述vue3的全局公共组件的...
    99+
    2023-02-01
    vue3全局组件自动注册 vue3注册全局组件 vue3全局组件
  • vue3全局组件自动注册功能怎么实现
    本篇内容主要讲解“vue3全局组件自动注册功能怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue3全局组件自动注册功能怎么实现”吧!vue3全局组件自动注册建文件需要在src/comp...
    99+
    2023-07-06
  • vue3全局组件自动注册功能如何实现
    vue3全局组件自动注册第一步:建文件需要在src/components 下创建一个文件夹用于存放封装的公共组件(这里我起名叫coms)需要在src/components 下创建一个js文件用于存放引入组件并注册(这里我起名叫Index.j...
    99+
    2023-05-14
    Vue3
  • vue实现全局组件自动注册,无需再单独引用
    目录vue全局组件自动注册自动化注册全局组件脚本vue全局组件自动注册 1、在components目录下创建一个global目录,里面放置一些需要全局注册的组件。 index.js作...
    99+
    2022-11-13
  • vue如何实现全局组件注册
    这篇文章主要为大家展示了“vue如何实现全局组件注册”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何实现全局组件注册”这篇文章吧。全局组件注册1 一般情...
    99+
    2022-10-19
  • Vue自动化注册全局组件脚本分享
    目录自动化注册全局组件放代码vue组件注册–全局注册使用require.context实现前端工程自动化(实现全局组件自动化注册的js脚本)基本思路使用场景自动化注册全局...
    99+
    2022-11-13
  • Vue3中注册全局的组件,并在TS中添加全局组件提示方式
    目录Vue3中注册全局的组件Vue3踩坑--全局注册组件我的框架:vue3+vite+ts+naiveUIVue3中注册全局的组件 1. 在src/components中新建inde...
    99+
    2022-11-13
  • Vue中怎么封装一个自动化注册全局组件
    这篇文章主要介绍“Vue中怎么封装一个自动化注册全局组件”,在日常操作中,相信很多人在Vue中怎么封装一个自动化注册全局组件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue中怎么封装一个自动化注册全局组件...
    99+
    2023-06-25
  • 使用Ajax和forms组件怎么实现注册功能
    这期内容当中小编将会给大家带来有关使用Ajax和forms组件怎么实现注册功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前端HTML<!DOCTYPE html>{% ...
    99+
    2023-06-08
  • 利用vue3自己实现计数功能组件封装实例
    目录前言一、封装的意义二、如何封装?1. 思路2. 准备2. 使用三、 效果演示总结前言 本文将带你用vue3自己封装一个实现计数功能的全局组件,其应用场景相信各位一看便知,那就是...
    99+
    2022-11-12
  • Swagger实现动态条件注入与全局拦截功能详细流程
    目录背景Swagger2 使用流程条件配置分析启示录背景 Swagger 可以提供 API 操作的测试文档,本文记录 Swagger 使用过程中遇到的两个小问题: 全局响应结果进行包...
    99+
    2023-01-30
    Swagger动态条件注入 Swagger全局拦截
  • vue全局注册自定义指令防抖怎么实现
    本文小编为大家详细介绍“vue全局注册自定义指令防抖怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue全局注册自定义指令防抖怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。全局注册自定义指令防抖...
    99+
    2023-06-30
  • vue工程如何为组件自动注入全局样式文件
    目录Less和Stylus安装style-resources-loader配置vue.config.jsSass/Scss扩展开发过程中,随着工程变大,不免要提取出一些公共的样式,如...
    99+
    2022-11-13
  • vue中怎么利用复合组件实现注册表单功能
    本篇文章给大家分享的是有关vue中怎么利用复合组件实现注册表单功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体内容如下<!doct...
    99+
    2022-10-19
  • android 仿微信demo——注册功能实现(移动端)
    目录移动端注册功能实现测试总结移动端注册功能实现 微信的注册界面每一个文本段都有下划线且默认颜色都是灰色,当其中一个文本段获取焦点会将下划线的颜色变为绿色,而且文本输入框的光标也是绿...
    99+
    2022-11-12
  • vue2实现directive自定义指令的封装与全局注册流程
    目录前言一、directive自定义指令介绍二、全局注册使用流程1.准备好我们需要的自定义指令2.开始在main中导入该文件完成注册功能3.完成了注册功能开始使用总结前言 我们在使用...
    99+
    2023-02-27
    vue2 directive自定义指令 vue2 全局注册 vue注册全局指令
  • vue2如何实现directive自定义指令的封装与全局注册
    本文小编为大家详细介绍“vue2如何实现directive自定义指令的封装与全局注册”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue2如何实现directive自定义指令的封装与全局注册”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
    99+
    2023-07-05
  • vue自定义全局组件实现弹框案例
    本文实例为大家分享了vue自定义全局组件实现弹框案例的具体代码,供大家参考,具体内容如下 说明:本案例是封装的一个弹框页面,因为只想要一个遮罩,内容自定义。因为ElementUI上已...
    99+
    2022-11-13
  • spring cloud config和bus组件实现自动刷新功能
    1.启动RabbitMQ 2.修改config服务端 依赖:(boot和cloud版本不要太高,不然刷新配置的请求不能用) <dependencies> &l...
    99+
    2022-11-12
  • 如何使用批处理实现注册表危险组件删除功能
    这篇文章主要介绍如何使用批处理实现注册表危险组件删除功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!把这个存成bat文件运行,保你服务器最基本的安全! 代码如下::: 注册表相关设定 reg delete HKEY...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作