【VUE入门级温故知新】一文向您详细介绍~组件注册(选项式API)

news2024/9/23 13:26:53

大家好,我是DX3906

🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘大前端领域、真诚分享知识与智慧的小天地!🎇

前面和大家分享了《如何从零开始创建一个 Vue 应用》

                             《VUE模板语法(超详细讲解)》

                             《一文向您详细介绍~Vue响应式基础(选项式API)》

                             《一文向您详细介绍~Vue计算属性computed(选项式API)》

                             《一文向您详细介绍~Class类 与 Style样式 绑定(选项式API)》

                             《一文向您详细介绍~条件渲染(选项式API)》

                             《一文向您详细介绍~列表渲染(选项式API)》

                             《一文向您详细介绍~事件处理v-on(选项式API)》

                             《一文向您详细介绍~模板引用ref(选项式API)》

                             《一文向您详细介绍~侦听器watch》

今天和大家共同学习一下Vue基于组合式API的组件注册

 

 背景

一个 Vue 组件在使用前需要先被“注册”,这样 Vue 才能在渲染模板时找到其对应的实现。组件注册有两种方式:全局注册和局部注册。

全局注册​

我们可以使用 Vue 应用实例的 .component() 方法,让组件在当前 Vue 应用中全局可用。

import { createApp } from 'vue'

const app = createApp({})

app.component(
  // 注册的名字
  'MyComponent',
  // 组件的实现
  {
    /* ... */
  }
)

如果使用单文件组件,你可以注册被导入的 .vue 文件:

import MyComponent from './App.vue'

app.component('MyComponent', MyComponent)

.component() 方法可以被链式调用:

app
  .component('ComponentA', ComponentA)
  .component('ComponentB', ComponentB)
  .component('ComponentC', ComponentC)

全局注册的组件可以在此应用的任意组件的模板中使用:

<!-- 这在当前应用的任意组件中都可用 -->
<ComponentA/>
<ComponentB/>
<ComponentC/>

 所有的子组件也可以使用全局注册的组件,这意味着这三个组件也都可以在彼此内部使用。

局部注册​

全局注册虽然很方便,但有以下几个问题:

  1. 全局注册,但并没有被使用的组件无法在生产打包时被自动移除 (也叫“tree-shaking”)。如果你全局注册了一个组件,即使它并没有被实际使用,它仍然会出现在打包后的 JS 文件中。

  2. 全局注册在大型项目中使项目的依赖关系变得不那么明确。在父组件中使用子组件时,不太容易定位子组件的实现。和使用过多的全局变量一样,这可能会影响应用长期的可维护性。

相比之下,局部注册的组件需要在使用它的父组件中显式导入,并且只能在该父组件中使用。它的优点是使组件之间的依赖关系更加明确,并且对 tree-shaking 更加友好。

局部注册需要使用 components 选项:

<script>
import ComponentA from './ComponentA.vue'

export default {
  components: {
    ComponentA
  }
}
</script>

<template>
  <ComponentA />
</template>

对于每个 components 对象里的属性,它们的 key 名就是注册的组件名,而值就是相应组件的实现。上面的例子中使用的是 ES2015 的缩写语法,等价于:

export default {
  components: {
    ComponentA: ComponentA
  }
  // ...
}

 请注意:局部注册的组件在后代组件中可用。在这个例子中,ComponentA 注册后仅在当前组件可用,而在任何的子组件或更深层的子组件中都不可用。

结语

🔥如果此文对你有帮助的话,欢迎💗关注、👍点赞、⭐收藏、✍️评论,支持一下博主~ 

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

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

相关文章

FTP服务器(服务名vsftpd,端口tcp/20和tcp/21)

目录 前言 配置文件 FTP服务器的配置 FTP服务的下载 配置防火墙 编辑配置文件 常用字段&#xff1a; 常用字段&#xff08;匿名用户&#xff09;&#xff1a; 常用字段&#xff08;系统用户&#xff09;&#xff1a; 指定系统用户访问&#xff1a; 编辑名单/etc/vsf…

AI预测体彩排3采取888=3策略+和值012路或胆码测试8月27日升级新模型预测第64弹

经过60多期的测试&#xff0c;当然有很多彩友也一直在观察我每天发的预测结果&#xff0c;得到了一个非常有价值的信息&#xff0c;那就是9码定位的命中率非常高&#xff0c;已到达90%的命中率&#xff0c;这给喜欢打私菜的朋友提供了极高价值的预测结果~当然了&#xff0c;大部…

【GD32 MCU 移植教程】从 GD32F303 移植到 GD32F503

1. 前言 GD32E503 系列是 GD 推出的 Cortex_M33 系列产品&#xff0c;该系列资源上与 GD32F303 兼容度非常 高&#xff0c;本应用笔记旨在帮助您快速将应用程序从 GD32F303 系列微控制器移植到 GD32E503 系列微 控制器。 2. 引脚兼容性 GD32F303 与 GD32E503…

C++研发笔记1——github注册文档

1、第一步&#xff1a;登录网站 GitHub: Let’s build from here GitHub 最新跳转页面如下&#xff1a; 2、选择“sign up”进行注册&#xff0c;并填写设置账户信息 3、创建账户成功之后需要进行再次登录 4、根据实际情况填写个人状态信息 登录完成后页面网站&#xff1a; 5…

大规模预训练语言模型的参数高效微调

人工智能咨询培训老师叶梓 转载标明出处 大规模预训练语言模型&#xff08;PLMs&#xff09;在特定下游任务上的微调和存储成本极高&#xff0c;这限制了它们在实际应用中的可行性。为了解决这一问题&#xff0c;来自清华大学和北京人工智能研究院的研究团队探索了一种优化模型…

[MRCTF2020]pyFlag(详解附送多个python脚本)

Hex&#xff1a; FF D9 5B 53 65 63 72 65 74 20 46 69 6C 65 20 50 61 72 74 20 31 3A 5D ASCII&#xff1a; [Secret File Part 1:] 发现Setsuna.jpg尾部有多余的一部分有左侧窗口pk头&a…

手把手教你GPT-SoVITS V2版本模型教程,内附整合包

首先需要声明的一点就是V1的模型能用在V2上面&#xff0c;但是V2的模型不能用在V1上&#xff0c;并且V1模型在V2上效果不佳&#xff01; 整合包下载地址&#xff1a; GPT-SoVITS V2整合包下载 https://klrvc.com/ GPT-SoVITS V2模型下载网 这次V2更新了以下功能 UVR5&#x…

超声波清洗机哪些品牌好用?小型超声波清洗机推荐

在日常生活中&#xff0c;诸如眼镜、项链和耳环之类的常用小物件&#xff0c;频繁的接触使得它们表面易吸附尘埃&#xff0c;尤其是缝隙里的污垢往往难以手动清除。此时&#xff0c;超声波清洗机成为了理想的清洁助手&#xff0c;它能深入细微之处&#xff0c;带来彻底的清洁体…

【设计模式-策略】

定义 策略模式是一种行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;并将每个算法封装起来&#xff0c;使它们可以互相替换&#xff0c;且算法的变化不会影响到使用算法的客户。通过使用策略模式&#xff0c;算法可以在运行时根据需要动态地进行更换&#xff0c;从…

JAVA毕业设计164—基于Java+Springboot+vue3的汽车租赁管理系统(源代码+数据库)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue3的汽车租赁管理系统(源代码数据库)164 一、系统介绍 本项目前后端分离(可以改为ssm版本)&#xff0c;分为用户、会员、管理员三种角色 1、用户&#xff1a…

破防了!软考小白们的春天,低起点也能赢在起跑线

软考通过率是否真的很低&#xff0c;可以通过官方数据来了解。 一、软考通过率是多少&#xff1f; 首先要说明的是&#xff0c;软考办并没有公布全国考试的通过率。但根据官方公布的报名人数和合格人数可以做一个预估。 浙江软考办官方公布&#xff0c;浙江2022年下半年软考…

c#透明悬浮球实现 从零开始用C#写一个桌面应用程序(三)

目标&#xff1a;透明悬浮球 记录日期&#xff1a;20240308 要求基础&#xff1a;C#语言基础部分事件与委托&#xff0c;c#桌面程序基础操作 注&#xff1a;可见前文 http://t.csdnimg.cn/9uWK8 今天开始做一个悬浮球软件。本以为最难的是让悬浮球的具体功能&#xff0c…

养猫知识!猫罐头好还是猫粮好?宠物医生都在用的猫罐头

有位姐妹刚养猫大概已经快一年了&#xff0c;一直给猫喂的都是干粮&#xff0c;猫咪毛发枯燥&#xff0c;长肉慢。带到医院检查后&#xff0c;我发现猫咪营养不良&#xff0c;吸收能力差&#xff0c;有点软便&#xff0c;我建议她给猫咪喂主食罐。结果猫咪爱吃&#xff0c;而且…

openGuass——对象管理

目录 一、表空间 二、数据库 三、模式:Schema 四、database schema table之间的关系 五、表 六、分区表 七、索引 八、视图 九、序列 十、同义词 十一、约束 一、表空间 自带了两个表空间&#xff1a;pg_default和pg_global。查看命令&#xff1a;\db 默认表空间pg…

AI时代,什么是QPS数据?

自 OpenAI 公司于 2022 年 11 月 30 日发布 ChatGPT 以来&#xff0c;经过 23 年一整年的发展之后&#xff0c;大语言模型的概念已逐渐普及&#xff0c;出现了各种基于大语言模型的周边产品&#xff0c;可以说已经玩的相当花哨了。 在这个AI发展的过程中&#xff0c;不少本地化…

Unity之OpenXR如何使用Netcode实现一个多人VR游戏

前言 Netcode for GameObjects 是专为 Unity 构建的高级网络库,可用于抽象网络逻辑。您可以通过网络会话同时向许多玩家发送 GameObjects 和世界数据。借助 Netcode for GameObjects,您可以专注于构建游戏,而无需考虑低级协议和网络框架。 Netcode框架的核心特性包括: 易…

支付宝开放平台-开发者社区——AI 日报「8 月 27 日」

1 多模态 Al 王者登场&#xff0c;语言图像模型大一统&#xff01;Meta 发布 Transfusion模型 新智元丨阅读原文 Meta 最新发布的 Transfusion 模型&#xff0c;成功融合了 Transformer 和 Diffusion 技术&#xff0c;实现了文本和图像生成的统一。该模型通过结合语言建模和扩…

动态内存管理函数malloc,calloc,realloc,free

malloc 函数原型&#xff1a;void* malloc(size_t size); 这个函数向内存申请一块连续可用的size大小的空间&#xff0c;并返回指向这快空间的指针。如果开辟成功&#xff0c;则返回一个指向开辟好空间的指针。如果开辟失败&#xff0c;则返回一个NULL指针&#xff0c;因此ma…

应用程序编程接口 (API) — 简单解释

Nimrita Koul 博士 https://medium.com/nimritakoul01/application-programming-interface-api-simply-explained-3680d4649121 文章目录 一、说明二、API 的类型二、示例健身应用程序三、可乐自动售货机四、客户端和服务器五、超文本传输协议 &#xff08;HTTP&#xff09;5.1…

逆向中的游戏-入土为安的第二十五天

逆向中的游戏 CE的介绍 Cheat Engine &#xff0c;简称CE&#xff0c;是逆向工程师常用的几大神器之一&#xff0c;也是游戏汉化、破解以及外挂编写中常用的工具&#xff0c;其功能包括&#xff1a;内存扫描、十六进制编辑器、调试工具&#xff0c;可以进行反汇编调试、断点跟…