『Vue组件』全局注册与局部注册及组件命名

news2024/11/18 9:24:59

一、组件注册的方式

在Vue中组件的注册一般可以分为两种方式,你可以在main.tsglobalComponents.ts等统一管理文件中对公共组件进行注册。也可以在父组件中引入组件并在components属性中对组件进行按需注册(OptionsAPI),这样便可以在template标签中直接使用。

1. 全局注册

 全局组件的好处便是在组件内部不需要导入文件并进行局部注册,便可以直接在template上直接使用该子组件。全局注册一般是用于注册公共组件(在一个组件库/多个组件内部都会使用到的组件)。

 全局注册需要使用到Vue应用实例上的component方法来进行注册,在聊component用法之前,我们可以简单认识一下Vue应用实例上有哪些方法?(应用实例指的是new Vue得到的对象或createApp得到的对象)具体的可以参照「Application Api官方文档**」**。我们用的较多的便是其中的mountuse方法,一个是用于挂载DOM真实对象,一个用于安装相关的插件。

 其次便是我们要聊到的全局组件注册的方法component了。方法接收两个参数,分别是组件名称与组件本身,以下为Vue官方给出的component方法的TypeScript注解:

interface App {
  component(name: string): Component | undefined
  component(name: string, component: Component): this
}

 Component本质上是一个对象,在Vue项目中我们虽然使用的是单文件的.vue文件来构建一个组件,但经过vue-loader的解析之后得到的其实就是一个对象,通过打印main.ts中引入的App.vue我们可以得到以下结果,可以很明显的看出Component本质就是一个对象。

 接着我们来聊聊要怎么使用component方法进行公共组件的全局注册,只需要将组件的命名填入以及对应的组件对象传入即可完成注册。这里的命名推荐使用Kebab-Case与Pascal-Case也就是中横线命名法与大驼峰命名法,原因是避免与HTML的保留标签冲突而导致一些意料之外的冲突。

 这里比较有意思的点是,在component方法中以Pascal-Case命名,则在模板中使用该字符时既可以用Kebab-Case也可以使用Pascal-Case,而使用中横线命名法Kebab-Case注册,则模板中只能使用Kebab-Case形式来使用。

import { createApp } from "vue";
import App from "./App.vue";
import MyComponent from "./components/MyComponent.vue";

const app = createApp(App);
// 使用Pascal-Case命名规则, 在template标签中可以使用 MyComponent 也可以使用 my-component 
app.component("MyComponent", MyComponent);
// 使用Kebab-Case命名规则, 在template标签中只能使用 my-component 而不能使用 MyComponent
app.component("my-component", MyComponent);
app.mount("#app");

 以上便是对于全局注册所要分享的知识点,接下来让我们再聊聊局部注册。

2. 局部注册

 局部注册的使用场景相较于全局注册就广多了,因为一般而言我们更需要的是按需加载,而不是在项目启动时就将所有需要的组件进行注册,这将消耗较多的性能。

 局部注册需要在父组件引入所需要使用到的子组件,并且在父组件实例中的components属性中对子组件进行注册(使用OptionsAPI的情况下),在使用Composition API的情况下,只需要在script setup中将所需的组件引入就可以在template中直接使用。

 对于标签的命名与使用与全局组件注册的特性一致。

<!-- Options API  -->
<template>
  <my-component></my-component>
</template>

<script>
import MyComponent from './components/MyComponent.vue'
export default {
  name: 'App',
  components: {
    // 自定义组件标签名: 组件实例
    MyComponent
  }
}
</script>

<!-- Composition API -->
<template>
  <my-component></my-component>
</template>

<script setup>
import MyComponent from './components/MyComponent.vue';
</script>

 以上。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

漏洞复现 飞视美 视频会议系统 Struts2 远程命令执行漏洞

0x01 阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&…

Grafana任意文件读取漏洞(CVE-2021-43798)

Grafana任意文件读取漏洞&#xff08;CVE-2021-43798&#xff09; 一、漏洞描述 Grafana是一个跨平台、开源的数据可视化网络应用程序平台。用户配置连接的数据源之后&#xff0c;Grafana可以在网络浏览器里显示数据图表和警告。 二、漏洞影响范围 影响版本&#xff1a; Gr…

antv-g6—在vue项目中实现网格拓扑流程图自定义绘制

实现效果图 这个是自己写着玩的&#xff0c;利用antv/g6自定义绘制流程图&#xff0c;然后保存到localstorage中&#xff0c;在左侧表格展示&#xff0c;还可以通过表格操作来查看对应的流程图以及删除&#xff1b; 这里特别注意一下&#xff0c;antv/g6版本是1.2.8&#xff0…

ModaHub魔搭社区:向量数据库MIlvus服务端配置(二)

目录 storage 区域 wal 区域 cache 区域 storage 区域 | 参数 | 说明 | 类型 | 默认值 | | ——————————————- | —————————————————————————————— | ——————————————————————————————- | ————…

解决 mac 系统报zsh: command not found: npm 问题

文章目录 1、报错zsh: command not found: npm2、解决办法 1、报错zsh: command not found: npm 根据提示&#xff1a;zsh: command not found: npm。说明没有找到 npm 命令&#xff0c;这说明有两种情况&#xff1a; 一是&#xff1a;你根本就没有安装 nodejs 的环境&#xf…

git add 时报错 warning: in the working copy of ‘package-lock.json‘, LF will...

问题&#xff1a; 执行git add . 时报错 原因&#xff1a; 换行符的问题&#xff0c; Windows下换行符和Unix下的换行符不一样&#xff0c;git会自动转换。 解决办法&#xff1a; 执行命令&#xff1a; git config --global core.autocrlf false 问题解决&#xff1a;

Windows网络服务综测刷题

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​ 前言 本章将会讲解Windows网络服务的刷题 一.刷题 在Windows Server 2016系统中&#xf…

【openpyxl】总结最近使用到的openpyxl方法

这里写自定义目录标题 单元格嵌入图片调节行高和列宽合并单元格自动换行按列插入数据tableWidget数据导出到excel 单元格嵌入图片 from openpyxl.drawing.image import Image from openpyxl.drawing.spreadsheet_drawing import AnchorMarker, TwoCellAnchor from openpyxl.wor…

Excel / PPT 办公技巧

Excel sum求和 我们先选中某个单元格单元格&#xff0c;并在编辑栏输入&#xff1a;SUM&#xff08;&#xff09;&#xff0c;然后输入函数参数&#xff1a;B2&#xff1a;B9&#xff0c;最后按回车键结束确认&#xff0c;即可计算出销量总和&#xff1b; PPT 组合 选中需要…

2023-01-09 DBeaver链接postgresql.md

DBeaver连接postgresql 驱动不存在 Maven artifact maven:/net.postgis:postgis-jdbc:RELEASE not found 解决方法&#xff1a;窗口--->首选项--->驱动--->Maven http://maven.aliyun.com/nexus/content/groups/public/

【ORA-01745: invalid host/bind variable name】

mybatis插入sql错误&#xff0c;一开始没注意他的sql 根据错误信息 ORA-01745: 无效的主机/绑定变量名一查 全是 什么批量插入数据过多导致的 实际上我这个不是

LeetCode刷题 | 70. 爬楼梯、322. 零钱兑换、279. 完全平方数

70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示…

怎么用云猫转码工具在线转换视频格式

我们平时在剪辑视频的时候&#xff0c;经常需要处理各种各样的视频格式&#xff0c;大家平时可以通过将不同的视频格式进行转换&#xff0c;就可以获得到更多的视频格式类型&#xff0c;那么有什么好用的工具可以快速转换视频格式的么&#xff1f; 推荐使用云猫转码工具在线转…

八大排序算法——(万字图文详解)

本篇文章是我对之前写过的八个排序算法的总结&#xff0c;感兴趣的小伙伴可以去我的八大排序算法专栏浏览&#xff0c;也可以点击下方标题跳转。 提示&#xff1a;本篇博客篇幅较长&#xff0c;建议小伙伴们查看目录&#xff0c;按需浏览 目录 正文 1 直接插入排序 2 希尔…

JAVA关于异常的处理

1.throw和throws public static int score(int math,int chinese) throws Exception {if(math < 0 || chinese < 0){throw new Exception();}return (mathchinese)/2;}从这里看&#xff0c; throw是在方法体中处理异常的&#xff0c;抛出&#xff0c;这个时候&#xff0…

centos7 解决 IP自动变化的问题

进入&#xff1a;cd /etc/sysconfig/network-scripts/ 找到&#xff1a;ircfg-ens33 文件 vi 打开 BOOTPROTO“static” IPADDR192.168.98.130 //设置的本机ip&#xff0c;需和网关在同一网段 192.168.234.xxx NETMASK255.255.255.0 子网掩码 设置好后 :wq systemctl restart…

Linux下Redis 6.2.6安装和部署详细图文步骤

目录 1、下载redis6.2.6安装包2、解压压缩文件3、重命名和移动文件4、redis编译安装1&#xff09;redis编译&#xff0c;执行make命令。2&#xff09;redis安装执行make install命令。 5、redis启动6、设置后台启动redis7、设置redis密码8、设置redis服务远程访问1、防火墙添加…

windows10关闭WPS广告及清理备份与设置升级

1、清理备份 备份开启可以预防断电等情况意外关闭文档&#xff0c;导致内容丢失&#xff0c;建议开启备份 2、WPS广告&#xff0c;恶意已久&#xff0c;不解释 3、路径 C:\Users\UserHostname\AppData\Local\Kingsoft\WPS Office\11.1.0.14309\office6 ksomisc.exe 程序。 …

微信小程序页面跳转的区别

①wx.navigateTo&#xff1a;跳转到新页面&#xff0c;可以返回上一层页面 ②wx.redirectTo&#xff1a;跳转到新页面并且关闭当前页面&#xff0c;不可以返回上一层页面(跳转到指定的非TabBar页面) ③wx.reLaunch&#xff1a;跳转到新页面并且关闭当前所有页面&#xff0c;不可…

怎么保护电脑重要文件夹?

当我们在电脑文件夹中存放重要数据时&#xff0c;为了避免数据泄露&#xff0c;就必须使用相应的方式保护文件夹的数据安全。那么我们该怎么保护电脑重要文件夹呢&#xff1f;下面我们就一起来了解一下吧。 文件夹隐藏 我们在文件夹上单击鼠标右键选择“属性”&#xff0c;随后…