vue组件全局注册

描述: vue组件的注册分为局部和全局注册两部分,局部注册相对容易,不做赘述;而不同框架的注册方法又有所不同,下面针对vite框架vue-cli框架的注册分别进行说明

vue组件全局注册

    • 一、vite框架中全局组件注册
    • 二、Vue-cli 框架中全局组件注册

一、vite框架中全局组件注册

第一步:创建文件

在src目录下创建components文件夹,并且创建组件文件,和用于引入组件的ts或者js文件
在这里插入图片描述
第二步:编写组件文件

<template>
  <h1>只是一个组件11</h1>
</template>
<script>
export default {
//组件名是必须的,如果是vue3项目使用的是setup语法糖,可以直接在标签上通过name属性定义组件名
  name: "MyComponent", 
};
</script>

补充:使用setup语法糖给组件命名

  • 安装 vite-plugin-vue-setup-extend插件
  • 注册插件
//vite.config.ts文件
import { defineConfig } from "vite";
import path from "path";
import vue from "@vitejs/plugin-vue";
import VueSetupExtend from "vite-plugin-vue-setup-extend"; //引入插件
export default defineConfig({
  plugins: [vue(), VueSetupExtend()], //注册插件
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "./src"),
    }
  },
});
  • 插件使用
//这里要特别注意,如果script内是空的,是不可以组件命名的,实在没有内容就加一行注释放在里面吧
<script setup name="MyComponent" lang="ts">
//MyComponent
</script>

第三步:引入组件

引入组件的方法又有逐个引入和批量引入,逐个引入就不说了,直接说批量的

// index.ts文件
const comps: any = import.meta.glob("./*/index.vue", { eager: true }); // eager:true 表示全部导入
export default {
  install: function (app: any) {
    Object.keys(comps).forEach((key) => {
      // 注册组件为全局组件
      const vueComp = comps[key].default;
      // 注册组件
      app.component(vueComp.name, vueComp);
    });
  },
};

也可以

export default function (app: any) {
    Object.keys(comps).forEach((key) => {
      // 注册组件为全局组件
      const vueComp = comps[key].default;
      // 注册组件
      app.component(vueComp.name, vueComp);
    });
}

第四步:注册组件

//main.ts
import Components from "./components/index"; //导入
app.use(Components); //注册

第五步:组件使用

// 使用模块
<template>
  <h1>首页</h1>
  <MyComponent /> <MyComponent /> <MyComponent /> <MyComponent />
  <input type="text" v-test="'测试数据'" />
</template>

第六步:效果展示
在这里插入图片描述

二、Vue-cli 框架中全局组件注册

第一步:创建文件

  • 在src目录下创建components文件夹,并且创建组件文件,和用于引入组件的js文件
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/591c622add4c4a6ea7c6f0223533e3dc.png

第二步:编写组件文件

<template>
  <h1>这是组件22</h1>
</template>
<script>
export default {
//这里需要定义一个组件名
  name: "testComponent",
};
</script>

第三步:引入组件

  • 引入组件的方法又有逐个引入和批量引入,逐个引入就不说了,直接说批量的
// index.js文件
const comps = require.context("../components", true, /\index.vue$/); //参数1:文件路径 ;参数2:是否搜文件夹内部 ;参数3:匹配文件的正则
export default {
  install: function (Vue) {
    comps.keys().forEach((key) => {
      Vue.component(comps(key).default.name, comps(key).default);
    });
  },
};

也可以

const comps = require.context("../components", true, /\index.vue$/); //参数1:文件路径 ;参数2:是否搜文件夹内部 ;参数3:匹配文件的正则
export default function (Vue) {
  comps.keys().forEach((key) => {
    Vue.component(comps(key).default.name, comps(key).default);
  });
}

第四步:注册组件

//main.js
import Components from "./components/index"; //导入
app.use(Components); //注册

第五步:组件使用

// 使用模块
<template>
  <div>
    <testComponent />
    <testComponent />
    <testComponent />
  </div>
</template>

<script>
export default {
  name: "App",
};
</script>

第六步:效果展示
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

点云入门知识

点云的处理任务 场景语义分割 物体的三维表达方法&#xff08;3D representations&#xff09;&#xff1a; 点云&#xff1a;是由物体表面上许多点数据来表征这个物体。最接近原始传感器数据&#xff0c;且具有丰富的几何信息。 Mesh&#xff1a;用三角形面片和正方形面片拼…

计算机语言vs指令vs中央处理器cpu

计算机中如何表示数据 在计算机中&#xff0c;所有数据和指令都是用二进制表示的&#xff0c;即0和1。这些0和1实际上是电压信号的高低电平&#xff0c;0通常表示低电平&#xff08;如0伏特&#xff09;&#xff0c;1表示高电平&#xff08;如5伏特&#xff09;。 指令系统&a…

食品行业怎么用JSON群发短信

食品作为日常生活不可缺少的元素&#xff0c;市场需求是很稳定的&#xff0c;但是份额就那么多&#xff0c;商家都要来抢占的话&#xff0c;就需要运营推广各凭本事&#xff0c;市场运营中选择合适的推广方式&#xff0c;可以增加店铺销售额&#xff0c;很多实体店或商城都会建…

LLM应用开发-RAG系统评估与优化

前言 Hello&#xff0c;大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者&#xff0c;在上一篇文章中&#xff0c;我们学习了如何基于LangChain构建RAG应用&#xff0c;并且通过Streamlit将这个RAG应用部署到了阿里云服务器&#xff1b;&am…

expandtabs()方法——tab符号转为空格

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 expandtabs()方法把字符串中的tab&#xff08;\t&#xff09;符号转为空格&#xff0c;tab&#xff08;\t&#xff09;符号默认的空格数是…

软考初级网络管理员__操作系统单选题

1.在Windows资源管理器中&#xff0c;假设已经选定文件&#xff0c;以下关于“复制”操作的叙述中&#xff0c;正确的有()。 按住Ctr键&#xff0c;拖至不同驱动器的图标上 按住AIt键&#xff0c;拖至不同驱动器的图标上 直接拖至不同驱动器的图标上 按住Shift键&#xff0…

普元EOS学习笔记-EOS8.3精简版安装

前言 普元EOS是优秀的高低开结合的企业应用软件开发框架。 普元&#xff1a;这是普元公司的名字&#xff0c;普元信息&#xff0c;上市公司哦&#xff0c;这里就不过多安利了。 EOS&#xff1a;普元公司的企业应用开发系统&#xff0c;开发语言是基于Java&#xff0c;技术框…

LLDP 基本原理

LLDP 简介 定义 LLDP&#xff08;Link Layer Discovery Protocol&#xff0c;链路层发现协议&#xff09;是 IEEE 802.1ab 中定义的第二层发现&#xff08;Layer 2 Discovery&#xff09;协议。 LLDP 提供了一种标准的链路层发现方式&#xff0c;可以将本端设备的主要能力、…

【51单片机入门】数码管原理

文章目录 前言共阴极与共阳极数码管多个数码管显示原理 总结 前言 在我们的日常生活中&#xff0c;数码管被广泛应用于各种电子设备中&#xff0c;如电子表、计时器、电子钟等。数码管的主要功能是显示数字和一些特殊字符。在这篇文章中&#xff0c;我们将探讨数码管的工作原理…

【详细】CNN中的卷积计算是什么-实例讲解

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、 CNN的基础卷积计算1.1.一个例子了解CNN的卷积计算是什么1.2.卷积层的生物意义 二、卷积的拓展&#xff1a;多输入通道与多输出通道2.1.多输入通道卷积2.2.多输出通道卷积 三、卷积的实现3.1.pytorch实现卷积…

助农扶贫网站

摘要&#xff1a;随着信息科技的快速发展和互联网的普及&#xff0c;信息技术在助力农业发展、促进农村振兴以及扶贫工作中发挥着越来越重要的作用。本文基于Spring Boot框架和Vue.js前端开发技术&#xff0c;设计完成了一个助农扶贫电商网站。网站提供便捷的农产品信息发布、农…

【验收支撑】项目验收计划书(Word原件)

软件验收相关的文档通常包括以下&#xff0c;这些文档在软件项目的不同阶段和验收过程中起着关键作用&#xff1a; 1、概要设计说明书&#xff1a; 描述了软件系统的整体架构、主要模块及其相互关系。 2、详细设计说明书&#xff1a; 提供了软件系统中各个模块的详细设计信息&a…

确保家电安全无忧:可燃气体报警器检验的重要性与必要性

随着家电行业的快速发展&#xff0c;安全问题已成为消费者关注的焦点。 可燃气体报警器作为一种重要的安全装置&#xff0c;在保障家庭安全中扮演着至关重要的角色。它能够实时监测室内可燃气体浓度&#xff0c;一旦超过预设的安全阈值&#xff0c;便会发出警报&#xff0c;提…

【Linux】服务器被work32病毒入侵CPU占用99%

文章目录 一、问题发现二、问题解决2.1 清楚病毒2.2 开启防火墙2.3 修改SSH端口2.4 仅使用凭据登录&#xff08;可选&#xff09; 一、问题发现 我的一台海外服务器&#xff0c;一直只运行一项服务&#xff08;你懂的&#xff09;&#xff0c;但是前不久我发现CPU占用99%。没在…

simulink开发stm32,使用中断模块,无法产生中断,其中包括使用timer模块,以及ADC都无法产生中断,需要注意的地方

1&#xff0c;其中包括使用timer模块&#xff0c;以及ADC都无法产生中断&#xff0c;需要注意的地方 原来是需要在配置文件里开启一下timer的中断&#xff0c;其他模块自动加载ioc就可以了&#xff0c;这个timer需要注意力&#xff0c;需要自己勾选一下 如下图&#xff1a; 看…

【嵌入式操作系统(Linux篇)】实验期末复习(1)

以下是关于嵌入式操作系统&#xff08;Linux篇&#xff09;的实验汇总&#xff0c;大概率都是会考的 特别是shell程序和文件IO的操作 嵌入式操作系统实验小结—涉及期末大题 &#xff08;一&#xff09;Linux操作系统的使用实验 1、认识Linux操作系统的目录结构 请进入自己…

一个开源的、独立的、可自托管的评论系统,专为现代Web平台设计

大家好&#xff0c;今天给大家分享的是一个开源的、独立的、可自托管的评论系统&#xff0c;专为现代Web平台设计。 Remark42是一个自托管的、轻量级的、简单的&#xff08;但功能强大的&#xff09;评论引擎&#xff0c;它不会监视用户。它可以嵌入到博客、文章或任何其他读者…

如何知道docker谁占用的显卡的显存?

文章目录 python环境安装nvidia-htop查看pid加一个追踪总结一下【找到容器创建时间】使用说明示例 再总结一下【用PID找到容器创建时间&#xff0c;从而找到谁创建的】使用说明示例 python环境安装nvidia-htop nvidia-htop是一个看详细的工具。 pip3 install nvidia-htop查看…

Qt:4.信号和槽

目录 1.信号源、信号和槽&#xff1a; 2.Qt类的继承关系&#xff1a; 3.自定义槽函数&#xff1a; 4.第一种信号和槽的连接的方法&#xff1a; 5.第二种信号和槽的连接的方法&#xff1a; 6.自定义信号&#xff1a; 7.发射信号&#xff1a; 8.信号和槽的传参&#xff1a;…

第7章_低成本 Modbus 传感器的实现

文章目录 第7章 低成本 Modbus 传感器的实现7.1 硬件资源介绍与接线7.2 开发环境搭建7.3 创建与体验第 1 个工程7.3.1 创建工程7.3.2 配置调试器7.3.3 配置 GPIO 操作 LED 7.4 UART 编程7.4.1 使用 STM32CubeMX 进行配置1.UART12.配置 RS485方向引脚 7.4.2 封装 UART7.4.3 上机…