Vue 3 第二十章:组件八(组件高级特性-组件的全局注册和局部注册)

文章介绍了Vue3中如何进行全局和局部注册组件。全局注册允许在应用任何地方使用组件,但未使用的组件无法在生产环境中被移除。局部注册则能明确组件间的依赖关系,提高代码可维护性和性能。局部注册的组件仅在其父组件内可用,更利于tree-shaking优化。
摘要由CSDN通过智能技术生成


Vue3 允许我们在全局注册组件,这使得我们可以构建更加灵活和可扩展的应用程序。同时,局部注册可以帮助我们更好地组织代码并提高应用程序的性能。

1. 全局注册组件

通过 app.component 方法可以在 Vue3 中创建一个全局组件:
在这里插入图片描述

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

// 自己封装的组件
import Button from "./components/Button/index.vue";

// 链式调用,component参数一:组件name,参数二:组件实例
// 注意:此处component一定要在mount之前
createApp(App).component("btn", Button).mount("#app");

在上面的代码中,我们先定义了一个名为 btn 的组件,然后使用 app.component 方法将其注册为全局组件。这样,在应用程序的任何地方都可以使用 <btn> 元素来加载该组件。

2. 局部注册组件

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

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

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

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

在使用<script setup>的单文件组件中,导入的组件可以直接在模板中使用,无需注册:

<template>
  <div>
    <local-component></local-component>
  </div>
</template>

<script setup laang="ts">
import LocalComponent from "./LocalComponent.vue";

</script>

如果没有使用 <script setup>,则需要使用components选项来显式注册:

<template>
  <div>
    <local-component></local-component>
  </div>
</template>

<script>
import LocalComponent from "./LocalComponent.vue";

export default {
	components: { LocalComponent },
	setup() {
		// ...
	}
}
</script>

在上面的代码中,我们在组件中注册了一个名为 LocalComponent 的组件,并将其包含在组件模板中。由于该组件只能在该组件内部使用,因此我们只需要在该组件内部进行注册即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

剑九_六千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值