两周掌握Vue3(三):全局组件、局部组件、Props

文章目录

  • 一、全局组件
    • 1.创建全局组件
    • 2.在main.js中注册全局组件
    • 3.使用全局组件
  • 二、局部组件
    • 1.创建局部组件
    • 2.在另一个组件中注册、使用局部组件
  • 三、Props
    • 1.定义一个子组件
    • 2.定义一个父组件
    • 3.效果

代码仓库:跳转
本博客对应分支:03

一、全局组件

Vue 3 中的全局组件是在应用程序中全局注册的组件,可以在任何地方使用,而不需要在每个组件中都单独注册。

1.创建全局组件

在components目录下创建全局组件MyGlobalComponent.vue:

<!-- components/MyGlobalComponent.vue -->
<template><div>This is my global component</div>
</template><script>
export default {name: 'MyGlobalComponent'
};
</script>

2.在main.js中注册全局组件

import { createApp } from 'vue';
import App from './App.vue';const app = createApp(App);// 注册全局组件
import MyGlobalComponent from './components/MyGlobalComponent.vue';
app.component('MyGlobalComponent', MyGlobalComponent);app.mount('#app');

3.使用全局组件

在App.vue中尝试使用我们定义和注册的全局组件:

<!-- App.vue -->
<template><div id="app"><!-- 使用全局组件 --><MyGlobalComponent ></MyGlobalComponent><HelloWorld /></div>
</template><script>
import HelloWorld from './components/HelloWorld.vue';export default {name: 'App',components: {HelloWorld}
};
</script>
  • 效果:

在这里插入图片描述

二、局部组件

在 Vue 3 中,局部组件是指在单个组件内部注册和使用的组件。这意味着局部组件只能在其父组件内部使用,而无法在其他组件中直接使用。要在 Vue 3 中创建一个局部组件,可以在父组件的 components 选项中注册它,然后在父组件的模板中使用它。

1.创建局部组件

在components目录下创建局部组件MyLocalComponent.vue:

<!-- components/MyLocalComponent.vue -->
<template><div><h2>这是局部组件</h2><p>我只能在父组件内部使用</p></div>
</template><script>
export default {name: 'MyLocalComponent'
};
</script>

2.在另一个组件中注册、使用局部组件

<!-- App.vue -->
<template><div id="app"><!-- 使用全局组件 --><MyGlobalComponent></MyGlobalComponent><!-- 使用局部组件 --><MyLocalComponent></MyLocalComponent><HelloWorld /></div>
</template><script>
// 引入并注册局部组件
import HelloWorld from './components/HelloWorld.vue';
import MyLocalComponent from './components/MyLocalComponent.vue';export default {name: 'App',components: {HelloWorld,MyLocalComponent}
};
</script>
  • 效果:

在这里插入图片描述

三、Props

在 Vue 3 中,props 是用于从父组件向子组件传递数据的机制。通过 props,父组件可以向子组件传递数据,子组件可以接收并使用这些数据。

1.定义一个子组件

在components目录下创建一个子组件ChildComponent.vue:

我们定义了一个名为 message 的 prop,并使用了 props 的验证功能。我们指定了它的类型为 String,并且设置为必需的(required: true)。这意味着父组件在使用 ChildComponent 时必须传递一个名为 message 的字符串类型的数据。

<!-- ChildComponent.vue -->
<template><div><h2>子组件</h2><p>{{ message }}</p></div></template><script>export default {props: {message: {type: String,required: true}}};</script>

2.定义一个父组件

在components目录下创建一个子组件ParentComponent.vue:

在父组件中,我们使用了 v-bind 或者简写的 : 语法将 parentMessage 数据传递给了 ChildComponent 的 message prop。这样,parentMessage 的值就会被传递到 ChildComponent 中,并在子组件中使用。

<!-- ParentComponent.vue -->
<template><div><h1>父组件</h1><ChildComponent :message="parentMessage" /></div>
</template><script>
import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent},data() {return {parentMessage: '这是来自父组件的消息'};}
};
</script>

3.效果

为了便于在页面上展示,我们在App.vue中注册ParentComponent为局部组件:

<!-- App.vue -->
<template><div id="app"><!-- 使用全局组件 --><MyGlobalComponent></MyGlobalComponent><!-- 使用局部组件 --><MyLocalComponent></MyLocalComponent><HelloWorld /><ParentComponent></ParentComponent></div>
</template><script>
// 引入并注册局部组件
import HelloWorld from './components/HelloWorld.vue';
import MyLocalComponent from './components/MyLocalComponent.vue';
import ParentComponent from './components/ParentComponent.vue';export default {name: 'App',components: {HelloWorld,MyLocalComponent,ParentComponent}
};
</script>
  • 效果:

在这里插入图片描述

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

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

相关文章

四、C#高级特性(反射与序列化)

在C#中&#xff0c;反射&#xff08;Reflection&#xff09;和序列化&#xff08;Serialization&#xff09;是两个重要的高级特性&#xff0c;它们在程序设计和开发中有着广泛的应用。 反射&#xff08;Reflection&#xff09; 反射是.NET框架的一个重要特性&#xff0c;它允…

c语言之输出函数用法 putchar

putchar函数 putchar函数是c语言输出函数&#xff0c;但它只能输出单个字符&#xff0c;如果要输出字符串就不合适了。 应用举例 #include<stdio.h> int main() {putchar(a);putchar(4);putchar(\n);return 0: } 从上面代码可以看出&#xff0c;单字符必须用单引号’…

vue项目添加改变浏览器标签title的标题

第一步:在main.js文件里添加 Vue.directive(title,{inserted:function(el,binding{document.title el.dataset.title}) })第二步:在组件任意一位置添加 <template><div class""main v-title data-title"自定义首页标题"></div> </…

计算机缺失mfu140u.dll的5种解决方法,亲测有效

在计算机系统运行过程中&#xff0c;mfu140u.dll文件的丢失是一个较为常见的问题场景。这个动态链接库文件(mfu140u.dll)对于系统的正常运行具有关键作用&#xff0c;它的缺失可能导致相关应用程序无法启动或执行功能异常。具体来说&#xff0c;mfu140u.dll丢失的场景可能出现在…

原子的质量是由质子质量、中子质量、电子质量组成的吗?

问题描述&#xff1a;原子的质量是由质子质量、中子质量、电子质量组成的吗&#xff1f; 问题解答&#xff1a; 是的&#xff0c;原子的质量主要由构成原子的质子、中子和电子的质量组成。这三种基本粒子在原子中分别承担不同的角色&#xff1a; 质子&#xff08;Proton&…

操作系统复习 五、六章

操作系统复习 五、六章 文章目录 操作系统复习 五、六章第五章 并发性: 互斥和同步基本概念实现临界区互斥访问的基本方法信号量管程 第六章 并发性:死锁和饥饿死锁的概念死锁的处理策略死锁的预防死锁避免死锁的检测和接触饥饿、死锁、死循环的区别 第五章 并发性: 互斥和同步…

Arm LDM和STM的寻址方式

A32指令集中包含多数据传输指令LDM和STM&#xff0c;也就是单条指令可以传输多个寄存器的值与内存交互&#xff0c;这对于数据块传输以及寄存器的压入栈很有帮助。LDM和STM指令可分别用于实现堆栈的pop和push操作。对于堆栈操作&#xff0c;基寄存器通常是堆栈指针(SP)。 LDM和…

Spring Boot Starter设计实现

前言 Starter 是 Spring Boot 非常重要的一个硬核功能。 通过 Starter 我们可以快速的引入一个功能或模块&#xff0c;而无须关心模块依赖的其它组件。关于配置&#xff0c;Spring Boot 采用“约定大于配置”的设计理念&#xff0c;Starter 一般都会提供默认配置&#xff0c;只…

Python脚本——.csv文件转.txt脚本三则

第一则 """ 批量给指定文件夹内的所有.csv文件增加表头后转成txt """import osdef add_header_and_convert_to_txt(csv_folder, header, output_folder):# 获取指定文件夹中的所有.csv文件csv_files [f for f in os.listdir(csv_folder) if f.…

LeetCode讲解篇之2280. 表示一个折线图的最少线段数

文章目录 题目描述题解思路题解代码 题目描述 题解思路 折线图中如果连续的线段共线&#xff0c;那么我们可以可以将其合并成一条线段 首先将坐标点按照横坐标升序排序 然后遍历数组 我们可以通过计算前一个线段的斜率和当前线段的斜率来判断是否共线 如果二者相等&#x…

【Linux常用的基本指令】

Linux学习笔记---002 Linux的基本指令1、ls指令2、pwd指令3、mkdir指令4、cd指令5、alias命令6、clear指令7、touch指令8、rmdir指令9、rm指令10、man指令11、cp指令12、mv指令13、cat指令14、more指令15、less指令16、时间相关的指令16.1、date指令16.2、cal指令 17、find指令…

Python之字符串中常用的方法

1. 去掉空格和特殊符号 name " abcdefgeyameng " name1 name.strip() # 并不会在原来的字符串上操作,返回一个去除了两边空白的字符串 print(name1, len(name1), name, len(name)) # abcdefgeyameng 14 abcdefgeyameng 17 # 去掉左边的空格和换行符 name2 n…

测试SpringBoot的时候报错mapper未装载的解决方案:

1.报错信息和截图&#xff1a; org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name com.tang.testspringboot.TestSpringBootApplicationTests: Unsatisfied dependency expressed through field mapper: No qualifying bean o…

Python3.10安装教程

Python3.10安装 Python的安装按照下面几步进行即可&#xff0c;比较简单。 下载Python安装文件&#xff0c;打开Python的下载页面&#xff0c;我这里选择安装的版本是3.10.11&#xff0c;根据自己电脑版本选择对应安装包 安装包下载完毕后&#xff0c;按照步骤开始安装。选择…

620基于51单片机的密码锁设计[Proteus仿真]

620基于51单片机的密码锁设计[proteus仿真] 密码锁设计这个题目算是课 程设计和毕业设计中常见的题目了&#xff0c;本期是一个基于51单片机的密码锁设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】&#xff0c;赞赏任意文章 2&#xffe5;&#xff0c;私信…

springboot集成钉钉通知

目录 1.通过自定义机器人方式发送群消息 1.1说明 1.2发送普通消息示例&#xff08;采用加签方式&#xff09; 1.3注意事项 2.通过企业内部应用发送钉钉消息 2.1说明 2.2示例 2.3注意 1.通过自定义机器人方式发送群消息 1.1说明 官网地址&#xff1a; 自定义机器人发送…

2024年江苏省信息安全管理与评估理论题题库(单选120题,多选40题)

2024年江苏省信息安全管理与评估理论题题库(单选120题,多选40题) 因各方面原因,无法公开发布,只能设为vip文章,有需要的小伙伴可以看看。 单选题 PGP是一个基于下列哪个公钥加密体系的邮件加密软件?( )A.RSA B.Kerberos C.DES D.IDEA 防火墙通过( )控制来阻塞邮…

this.setState的注意事项

目录 1、this.setState的注意事项 2、是什么造成了this.setState()的不同步&#xff1f; 3、 那this.setState()什么时候同步&#xff0c;什么时候不同步&#xff1f; 3.1 经过React包装的onClick点击事件&#xff08;&#xff09; 3.2 没经过React包装的 原生点击事件 …

嘘……快进来!这儿有最新版Microsoft照片程序的安装秘籍!(附安装引导程序下载)

网管小贾 / sysadm.cc 最近啊有不少小伙伴向我反馈&#xff0c;自个的 Windows 10 系统里边居然没有 Microsoft 照片 程序。 我觉得有点不可思议&#xff0c;为啥呢&#xff0c;因为他们的电脑是新买的&#xff01; 你看哈&#xff0c;系统是 22H2 最新版&#xff0c;安装日期…

vscode打开c_cpp_properties.json文件的一种方式

步骤一 点击win32 步骤二 点击json 自动生成了