当前位置: 首页 > article >正文

【Vue3】第三篇

Vue3学习第三篇

  • 01. 组件组成
  • 02. 组件嵌套关系
  • 03. 组件注册方式
  • 04. 组件传递数据Props
  • 05. 组件传递多种数据类型
  • 06. 组件传递Props校验
  • 07. 组件事件
  • 08. 组件事件配合v-model使用
  • 09. 组件数据传递
  • 10. 透传Attributes

01. 组件组成

vue当中,组件是最重要的知识,因为在vue当中是组件化开发,也就是说,所有的内容都是由组件所组成的。

比如,我们写一个项目,这个项目有很多功能每个功能都是由一个完整的组件去实现的,把这些功能或者说这些组件拼在一起就形成了一个完整的项目。

组件最大的优势就是可复用性

意思就是我们把一个功能抽离成一个组件之后,这个功能就可以被多次引用。

当使用构建步骤时,我们一般会将Vue组件定义在一个单独的.vue文件中,这被叫做单文件组件(简称SFC)

在这里插入图片描述

template标签:承载所有的html标签
script标签:承载所有的业务逻辑
style标签:承载所有的样式

所以,一个vue的组件就承载了所有的我们页面所要呈现的内容,包含结构的html、逻辑的js、样式的css。

下面我们来看组件是如何使用的:
在这里插入图片描述

在这里插入图片描述

注意:scoped
在这里插入图片描述
如果不加它,则样式全局可用。
在这里插入图片描述

02. 组件嵌套关系

在这里插入图片描述
下面我们来实操完成页面:

(1)Header:
在这里插入图片描述
在这里插入图片描述
以此类推Main和Aside

(2)Main:
在这里插入图片描述
在这里插入图片描述

(3)Aside:

在这里插入图片描述
在这里插入图片描述

03. 组件注册方式

一个Vue组件使用前需要先被“注册”,这样Vue才能在渲染模板时找到其对应的实现。

组件注册有两种方式:全局注册局部注册

我们平常所使用的就是局部注册。(引入)

(1)全局注册
在这里插入图片描述
以Header为例:

main.js中通过app.component注入。括号内:
第一个,为它起的名(日后我们要引用的名字)
第二个,它的名字

全局注册则不需要在App.vueimport(引入)以及不需要components(注入),只需要显示即可。(引入和注入在main.js内)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)局部注册
在这里插入图片描述

04. 组件传递数据Props

在这里插入图片描述
(1)普通Props父传子

在parent组件中,在child 展示 的标签内传递给child数据
在这里插入图片描述
child用Props接收:
在这里插入图片描述
结果:

在这里插入图片描述

(2)动态传递数据

我们上面parent传递给child的数据是写死的,其实我们可以动态传递数据。
在这里插入图片描述

注意:
在这里插入图片描述

05. 组件传递多种数据类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

06. 组件传递Props校验

(1)校验

vue组件可以对传递过来的数据类型校验
在这里插入图片描述
在这里插入图片描述

也可以是数组包括很多类型 传递过来的数据类型满足其中一个即可
在这里插入图片描述

(2)默认值

用default设置默认值0:
在这里插入图片描述
传递则显示20,不传则显示默认值0(传的话,有:age="age"
在这里插入图片描述
注意:
在这里插入图片描述
其实就是通过函数来增加默认值 返回

(3)必选项

必须传递数据
在这里插入图片描述
不传递数据则报警告。

注意:
在这里插入图片描述
props是只读的,不允许修改父元素传递过来的数据(但可以修改自己data内的数据

07. 组件事件

先前我们已经讲过事件处理(给页面中的元素添加事件,如按钮的点击事件)。
今天我们就来学习组件事件(给组件本身添加事件,目的是用来做组件之间的数据传递的)

注意:在老版本中称为自定义事件
在这里插入图片描述
props只能父传子,而自定义事件则可以实现子传父

在这里插入图片描述
在这里插入图片描述
也可以写在页面上
在这里插入图片描述
在这里插入图片描述

child组件也可以如下:
在这里插入图片描述

在这里插入图片描述

08. 组件事件配合v-model使用

前面我们学过,v-model是表单中使用的一个指令,在input标签或者其他标签内用,在用户输入的同时来获取用户所输入的信息。

那么在组件中呢,则是:

组件A输入数据,在组件B实时得到数据。

下面是两个组件,Main和Search。
在这里插入图片描述
我们希望在Search组件的表单内输入数据,Main组件中获取数据(一边展示搜索框的内容)

要怎么做到呢?答:结合自定义事件侦听器两者来实现。
在这里插入图片描述
在这里插入图片描述

09. 组件数据传递

在这里插入图片描述
先前我们并没有传递函数,而函数是可以互相携带参数的,所以我们可以利用这个细节来实现子传父
在这里插入图片描述
实际上还是A给B传,只不过在传递的时候B给A回了个参数
(实际上还是调用A中的函数执行)

在这里插入图片描述
在这里插入图片描述

10. 透传Attributes

不常用。了解即可。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
相当于h3里面具attr-container样式

还有个知识点
在这里插入图片描述
在这里插入图片描述
inheritAttrs设为false,这样则其不生效


http://www.kler.cn/a/369852.html

相关文章:

  • 【中间件快速入门】什么是Redis
  • Linux学习笔记——网络管理命令
  • 尝试qemu仿真VisionFive2 OpenKylin系统
  • Level2逐笔成交逐笔委托毫秒记录:今日分享优质股票数据20250124
  • RoCE网络及其协议栈详解(没有中间商赚差价的网络)
  • Python OrderedDict 实现 Least Recently used(LRU)缓存
  • 算法练习:四数之和
  • 数组排序简介-选择排序(Selection Sort)
  • ESP8266学习记录
  • 消息中间件mq*(Kafka)
  • 【C++】How the C++ Compiler Works
  • java_方法重载、可变参数、作用域
  • Excel-多表数据查找匹配(VLOOKUP)
  • Chromium HTML5 新的 Input 类型tel对应c++
  • 编写xml形式sql语句注意事项
  • 「C/C++」C++设计模式 之 Pimpl模式
  • `a = a + b` 与 `a += b` 的区别
  • 软考:缓存分片和一致性哈希
  • 如何搭建AI智能化招聘平台?招聘系统源码与小程序开发技术方案探讨
  • 在html中引用unpkg的vue3,v-model无法绑定方法
  • JAVA模仿银行系统要求
  • 【C语言】int类型整数取值范围的缘由
  • 【LLM论文日更 | 一种引入上下文的文档嵌入方法 】
  • Jenkins+maven+git(gogs)自动化构建打包+部署(项目实战)
  • 深度学习:YOLO v2 网络架构解析
  • 2025年NPDP产品经理认证考试时间和报考条件