第一个组件

简介: 第一个组件

组件React 的核心概念之一。它们是构建用户界面(UI)的基础,是你开始 React 之旅的最佳起点!

组件:UI 构成要素

在 Web 当中,HTML 允许我们使用其内置的标签集(如 <h1><li>)创建丰富的结构化文档:

<article>
<h1>我的第一个组件</h1>
<ol>
<li>组件:UI 构成要素</li>
<li>定义组件</li>
<li>使用组件</li>
</ol>
</article>

<article> 表示这篇文章,<h1> 表示文章的标题,<ol> 以有序列表的形式表示文章的(缩写的)目录。每一个侧边栏、头像、模态框、下拉框的背后是都是像这样的(结合了用于样式的 CSS 和用于交互的 JavaScript 的)标签——你在 Web 上看到的每一个 UI 模块。

React 允许你将标签、CSS 和 JavaScript 组合成自定义“组件”,即 应用程序中可复用的 UI 元素。上文中表示目录的代码可以改写成一个能够在每个页面中渲染的 <TableOfContents /> 组件。实际上,使用的依然是 <article><h1> 等相同的 HTML 标签。

就像使用 HTML 标签一样,你可以组合、排序和嵌套组件来绘制整个页面。例如,你正在阅读的文档页面就是由 React 组件构成的:

<PageLayout>
<NavigationHeader>
<SearchBar />
<Link to="/docs">文档</Link>
</NavigationHeader>
<Sidebar />
<PageContent>
<TableOfContents />
<DocumentationText />
</PageContent>
</PageLayout>

随着项目的发展,你会发现很多布局可以通过复用已经完成的组件来实现,从而加快开发进程。上文中提到的目录可以通过 <TableOfContents /> 组件添加到任意的画面中!你也可以使用 React 开源社区分享的大量组件(例如 Chakra UIMaterial UI)来快速启动项目。

定义组件

一直以来,创建网页时,Web 开发人员会用标签描述内容,然后通过 JavaScript 来增加交互。这种在 Web 上添加交互的方式能产生出色的效果。现在许多网站和全部应用都需要交互。React 最为重视交互性且使用了相同的处理方式:React 组件是一段可以 使用标签进行扩展 的 JavaScript 函数。如下所示(你可以编辑下面的示例):

以下是构建组件的方法:

第一步:导出组件

export default 前缀是一种 JavaScript 标准语法(非 React 的特性)。它允许你标签一个文件中的主要函数以便你以后可以从其他文件引入它。欲了解更多关于导入的内容,请参阅 组件的导入与导出 章节!

第二步:定义函数

使用 function Profile() { } 定义名为 Profile 的 JavaScript 函数。

React 组件是常规的 JavaScript 函数,但 组件的名称必须以大写字母开头,否则它们将无法运行!

第三步:添加标签

这个组件返回一个带有 srcalt 属性的 <img /> 标签。<img /> 写得像 HTML,但实际上是 JavaScript!这种语法被称为 JSX,它允许你在 JavaScript 中嵌入使用标签。

返回语句可以全写在一行上,如下面组件中所示:

return <img src="https://i.imgur.com/MK3eW3As.jpg" alt="Katherine Johnson" />;

但是,如果你的标签和 return 关键字不在同一行,则必须把它包裹在一对括号中,如下所示:

return (
  <div>
    <img src="https://i.imgur.com/MK3eW3As.jpg" alt="Katherine Johnson" />
  </div>
);
没有括号包裹的话,任何在 return 下一行的代码都 将被忽略!


相关文章
|
人工智能 安全 网络安全
云计算与网络安全:技术融合的未来
随着信息技术的不断发展,云计算和网络安全作为两大领域在当代社会中扮演着至关重要的角色。本文将探讨云计算与网络安全之间的紧密联系,以及它们在信息安全领域中的相互影响和未来发展趋势。
|
SQL 存储 缓存
MySQL是如何保证数据不丢失的?
文章详细阐述了InnoDB存储引擎中Buffer Pool与DML操作的关系。在执行插入、更新或删除操作时,InnoDB为了减少磁盘I/O,会在Buffer Pool中缓存数据页进行操作,随后将更新后的“脏页”刷新至磁盘。为防止服务宕机导致数据丢失,InnoDB采用了日志先行(WAL)机制,通过将DML操作记录为Redo Log并异步刷新到磁盘,结合双写机制和合理的日志刷新策略,确保数据的持久性和一致性。尽管如此,仍需合理配置参数以平衡性能与数据安全性。
399 1
MySQL是如何保证数据不丢失的?
|
8月前
|
运维 供应链 数据可视化
基于开源软件的场景式教学:高职院校培养学生创新能力的新模式
在数字化转型与产教融合背景下,高职教育正从“知识传授”向“能力塑造”转变。开源软件以其开放性、灵活性和低成本特性,成为推动场景式教学的重要工具。本文探讨了通过开源软件构建沉浸式、项目驱动的教学模式,分析其技术路径与价值。例如,Websoft9等平台提供预置模板和“开箱即用”功能,助力学生快速进入实践阶段。结合虚拟仿真技术与AIGC,教学突破传统限制,培养跨学科创新思维。案例显示,该模式显著提升学生创新能力与就业竞争力。未来需深化“开源工具+产业标准”资源库建设,推动校企共建开源社区,强化教师技术整合能力,为创新型人才培养注入持续动力。
|
9月前
|
人工智能 Java 程序员
一文彻底搞明白二极管
本文介绍了二极管的基本原理、特性、分类及应用场景,帮助读者深入了解这一重要电子元件。
1696 0
|
存储 SQL 安全
啥?Snowflake 数据共享功能
啥?Snowflake 数据共享功能
207 0
|
消息中间件 存储 Java
RabbitMQ-同步和异步区别&快速入门
RabbitMQ-同步和异步区别&快速入门
621 1
|
存储 机器学习/深度学习 算法
一文概述联邦持续学习最新研究进展(3)
一文概述联邦持续学习最新研究进展
664 0
一文概述联邦持续学习最新研究进展(3)
|
JavaScript
Vue3指令:搜索框输入防抖实现(附源码)
Vue3指令:搜索框输入防抖实现(附源码)
540 0
|
SQL 存储 关系型数据库
【MySQL】View 视图用法及作用
1. 视图概述 1.1 为什么使用视图? 视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。
|
算法 vr&ar UED
【年终特辑】看见科技创新力量 洞见时代创业精神—文旅娱乐—和平共科:打造新社交模式,认识更多有缘人
【年终特辑】看见科技创新力量 洞见时代创业精神—文旅娱乐—和平共科:打造新社交模式,认识更多有缘人
179 0