首页 > 其他分享 >10:vue3 组件注册方式(全局注册和局部注册)

10:vue3 组件注册方式(全局注册和局部注册)

时间:2023-07-05 15:45:39浏览次数:47  
标签:10 vue Header 注册 vue3 组件 import 全局

组件注册方式

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

全局注册

将09节课程的Header组件进行全局注册演练

在main.js中添加Header.vue组件的注册

 1 import { createApp } from 'vue'
 2 import App from './App.vue'
 3 
 4 import Header from './pages/Header.vue'
 5 
 6 const app=createApp(App)
 7 
 8 //在这中间写全局组件的注册
 9 app.component("Header",Header)
10 
11 app.mount('#app')

在App.vue中修改Header组件引用方式

 1 <template>
 2 
 3 <!-- 第三步:显示组件 -->
 4 <!-- <Header></Header> -->
 5 <!-- 使用通过main.js的全局组件注册,显示组件 -->
 6 <Header></Header>
 7 <Main></Main>
 8 <Aside></Aside>
 9 </template>
10 
11 <script>
12 //第一步:引入组件
13 //局部注册方式
14 // import Header from "./pages/Header.vue";
15 import Main from "./pages/Main.vue";
16 import Aside from "./pages/Aside.vue";
17 
18 //第二步:注入组件
19 export default{
20   components:{
21     //局部注册方式
22     // Header,
23     Main,
24     Aside
25   }
26 }
27 
28 </script>

 

局部注册

在单页面中局部注册组件

 1 <template>
 2 <!-- 第三步:显示组件 -->
 3 <Header></Header>
 4 </template>
 5 
 6 <script>
 7 //第一步:引入组件
 8 import Header from "./pages/Header.vue";
 9 
10 //第二步:注入组件
11 export default{
12   components:{
13     Header
14   }
15 }
16 </script>

全局注册和局部注册比较

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

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

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

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

标签:10,vue,Header,注册,vue3,组件,import,全局
From: https://www.cnblogs.com/wuzexin/p/17528713.html

相关文章

  • vue3子组件向父组件传参
    《好记性不如烂笔头系列》子组件<template><divclass="protocolstyle"><van-checkboxv-model="checked"toggle@click="userProtocolClick"></van-checkbox><spanclass="marginL5">测试数据</span......
  • [最新开源推荐]免费可商用的开源培训平台,发布三个月1000star!
    项目简介PlayEdu是一款用于内部培训的开源系统,功能强大,界面美观,致力于搭建私有化内部培训平台。 项目地址Github地址:https://github.com/PlayEdu/PlayEduGItee地址:https://gitee.com/playeduxyz/playedu 技术栈基于Java+MySQL开发,采用前后端分离模式,前台采用Reac......
  • 利用ansible批量部署node客户端,并注册consul,实现主机自动发现
      1.在管理机器上搭建consul并上传 node_exoporter软件包,system服务配置文件,注册脚本 2.利用ansible对指定机器去分发软件包并启动服务,并curl注册到consul  编写为node-exporter.yml 3.prometheus配置consul地址,获取主机信息,自动发现并配合grafana展示  system......
  • 坚固型3DMAG™A31315LOLATR-XZ-S-AR-10、A31315LOLATR-XY-S-SE-10霍尔效应 线性,旋转位
    A313153D磁性位置传感器IC是完全集成的坚固型3DMAG™霍尔效应磁性位置传感器IC,主要用于支持汽车、工业和消费类应用中的各种非接触式旋转和线性位置测量。此传感器IC符合AEC-Q1000级的要求,并根据ISO26262进行开发。这些标准使A31315成为了要求严格的汽车安全系统的理想选择,适......
  • 09: vue3 组件嵌套关系
    组件嵌套关系组件允许我们将UI划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构:这和我们嵌套HTML元素的方式类似,Vue实现了自己的组件模型,使我们可以在每个组件内封装自定义内容与逻辑。创建组件及引用关系......
  • 在asp.net core中使用vue3+vite(起)
    前言一开始是一个自用的应用,原本是用razor写的。最近有了点新想法,加点新功能,但是我接触的项目基本都是vue+api的前后端分离,用这razor写的是真不习惯,最后决定还是用习惯的vue重写。之前尝试过在.netcore里使用vue2+webpack,毕竟实际上就是把.vue翻译成了.js来用,一个站点就能跑。......
  • 08:vue3 组件基础
    定义一个组件在components文件夹下新建MyComponent.vue组件 写入下面代码1<script>2exportdefault{3data(){4return{5count:06}7}8}9</script>1011<template>12<button@click="count++">我被点击了{......
  • 镭神N10P测试记录
    测试一下镭神N10P,发现资料包更新了很多,但是pdf文档有的没更新,按照手册上是运行不出来的。这边记录一下,把测试记录下来,后面方便复制。1.插上雷达,连接上Ubuntu,终端输入lsusb看到CP210x的驱动串口就算连上了。这边可能需要前面教程把驱动装上,也可能你的Ubuntu自带。2.命令l......
  • 好用的开源知识管理系统有哪些?整理10款主流知识管理工具(开源、免费、企业、个人)
    知识管理系统并没有一个统一的定义。根据组织状况的不同,以及出于文档沉淀、知识库对外分享、多人协作、个人笔记、文档快速检索等需求的不同,每个组织都需要的知识管理系统可能都不一样。但在大部分时候,我们讨论知识管理系统时,我们集中在那些能够有效存储信息,同时能够实现高效的知......
  • 模拟嵌入式边缘计算卡设计方案:367-XC7Z100 板卡 基于zynq XC7Z100 FMC接口通用计算平
    基于zynqXC7Z100FMC接口通用计算平台 一、板卡概述北京太速科技板卡由SoCXC7Z100-2FFG900I芯片来完成卡主控及数字信号处理,XC7Z100内部集成了两个ARMCortex-A9核和一个kintex7的FPGA,通过PL端FPGA扩展FMC、光纤、IO等接口,PS端ARM扩展网络、USB、RS232等接口......