章节 2:轻松入手JSX -《React.js手把手教程:从初学者到实战高手》- 第一部分:React.js基础

《React.js手把手教程:从初学者到实战高手》
第一部分:React.js基础

章节 2:轻松入手JSX

在上一章节中,我们初步认识了React.js。现在,我们将更深入地探索React.js中的JSXJavaScript XML)语法,这是一种用于构建React界面的强大工具。

什么是JSX?

JSXJavaScript XML)是一种语法扩展,它允许我们在JavaScript代码中以类似HTML的方式编写UI组件。尽管它看起来像是HTML,但实际上它是JavaScript代码的一部分,用于定义React元素的结构和外观。

JSX的基本语法

让我们从一个简单的例子开始,以帮助你更好地理解JSX

我们可以 js 代码中像下面这样创建一个JSX元素,它表示一个简单的<div>标签,标签内包含有文本内容 Hello, JSX!,并且,将这个标签赋值给了变量 element

const element = <div>Hello, JSX!</div>;

是不是和 HTML 很像?在Javascript代码里直接写HTML标签,这将为我们编写代码提供极大的便利!

在JSX中嵌入表达式

JSX不仅允许我们创建静态内容,还可以在花括号({})内嵌入JavaScript表达式,从而动态生成内容。例如,我们可以在JSX中嵌入变量、函数调用等:

示例1:

const name = "Alice";
const greeting = <p>Hello, {name}!</p>;

在这个示例中,当代码运行时,{} 内的 name 将被变量 name 的值替换,将输出以下内容:

<p>Hello, Alice</p>

示例2:

const getName = function() {return 'Alice';
};
const greeting = <p>Hello, {getName()}!</p>;

在这个示例中,当代码运行时,{} 内的 getName() 表示将会被执行 getName() 函数输出的结果所替换,最终将输出以下内容:

<p>Hello, Alice</p>

在项目中尝试一下

现在,我们在项目中尝试一下刚刚学到的JSX,并看看效果。

VS Code 中打开我们之前创建的 my-react-app 项目,如果你还没有创建这个项目,请参考 “准备工作” 这个章节创建它。

修改 src/App.js 中的代码,用以下代码替换掉之前的代码:

import React from 'react';function App() {return (<div><h1>Welcome to my React App</h1><p>This is an example of using JSX!</p></div>);
}export default App;

现在我们来对这段代码做一些说明。

你可以将 src/App.js 看作是项目的入口文件(其实,真正的入口文件是 src/index.js,因为 src/index.js 引用了 src/App.js,所以我们可以将 src/App.js 当作项目的入口文件),当项目运行时,就会首先执行这个文件中的代码。

这个文件定义了一个名为 App 的组件。一个React App项目是由层层嵌套的组件构成的。你可以将这个 App 组件当作是项目的根组件(其实它不是真正的根组件,但你可以这样认为)。

如你所见,这个组件其实是一个 function,我们称之为 function组件 或者 函数式组件。还有一种 class组件,我们在 “章节 1” 中创建的 HelloWorld组件 就是一个 class组件。由于现在 React.js 官网似乎更推崇 function组件,所以本书中我们将更多地使用 function组件

function组件return 内容就是这个组件最终渲染在页面上的内容。

再次如你所见,在我们这个示例中,App组件return 部分并不是常规的 Javascript 代码,它就是我们刚刚学习的 JSX 代码。所以,这个 App组件 最终渲染到页面上的内容是:

<div><h1>Welcome to my React App</h1><p>This is an example of using JSX!</p>
</div>

是不是很神奇?是不是很简单?

现在,运行这个项目看看效果。在命令行窗口中进入该项目的根目录,并执行以下命令(如果项目正在运行中,则不需要再次执行此命令,并且,当你修改代码后,浏览器将会自动应用最新的代码):

npm start

现在,你在浏览器中将会看到如以下的运行效果:
JSX运行效果
这是一个非常基础的示例,但它为你打开了探索更多React.jsJSX的大门。

提高可读性:JSX中的注释

在编写代码的过程中,良好的注释可以帮助他人(包括你自己)更好地理解代码的含义。在JSX中,我们也可以添加注释来提高代码的可读性。

JSX中,使用 // 来添加单行注释。例如:

return (<div><h1>Hello, World!</h1>{// 这是一个单行注释}</div>
);

JSX中,{} 内的内容是 JavaScript 表达式,注释必须写在 {} 内。

还可以用 /* ,,, */ 添加注释,这种写法可以是单行注释,也可以是多行注释。例如:

return (<div>{/* 这是单行注释 */}{/* 这是一个多行注释,可以包含多行内容。*/}<p>Welcome to my app!</p></div>
);

如果你使用 VS Code,可以使用快捷键 Ctrl + /macOS上使用 Command + /)来添加注释。选中需要注释的内容,然后按下 Ctrl + /Command + / 即可。

好了。在这个章节中我们对JSX的学习就先到这里。当然,有关JSX的知识远不只这些,但我不希望在一个章节中集中讲解太多枯燥乏味的语法。我会将这些知识分散到后面的章节中。

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

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

相关文章

JVM 之字节码(.class)文件

本文中的内容参考B站尚硅谷宋红康JVM全套教程 你将获得&#xff1a; 1、掌握字节码文件的结构 2、掌握Java源代码如何在JVM中执行 3、掌握一些虚拟机指令 4、回答一些面试题 课程介绍 通过几个面试题初始字节码文件为什么学习class字节码文件什么是class字节码文件分析c…

设计模式-适配器模式

目录 1 概念介绍 1.1 基本介绍 1.2 工作原理 2 详细介绍 2.1 类适配器 2.2 对象适配器 2.3 接口适配器 3 注意事项和细节 1 概念介绍 1.1 基本介绍 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;主的目的是兼容性&#xf…

线程池也就那么一回事嘛!

线程池详讲 一、线程池的概述二、线程池三、自定义线程池四、线程池工作流程图五、线程池应用场景 一、线程池的概述 线程池其实就是一种多线程处理形式&#xff0c;处理过程中可以将任务添加到队列中&#xff0c;然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过…

拥塞控制(TCP限制窗口大小的机制)

拥塞控制机制可以使滑动窗口在保证可靠性的前提下&#xff0c;提高传输效率 关于滑动窗口的属性以及部分机制推荐看TCP中窗口和滑动窗口的含义以及流量控制 拥塞控制出现的原因 看了上面推荐的博客我们已经知道了&#xff0c;由于接收方接收数据的能力有限&#xff0c;所以要通…

暑期习题练习 C语言

编程能力小提升&#xff01; 前言一、转义字符二、重命名与宏定义三、三目运算符四、计算日期到天数转换五、计算字符串长度六、宏定义应用七、const常量八、C语言基础九、const常量&#xff08;二&#xff09;十、符号运算十一、记负均正十二、SWITCH&#xff0c;CASE十三、错…

Nexus 如何配置匿名用户访问一个仓库

现在有这样一个需求&#xff0c;我们需要匿名用户访问 Nexus 的一个公共仓库。 设置 Roles 在满足这个需求之前&#xff0c;我们需要设置一个 Roles。 Role 的名字是可以随填写的。 这里关键的问题在你需要访问的仓库的 View 的权限需要设置 Read 和 Browse 这 2 个权限。 如…

JDK1.8 安装教程(linux)

一、 检查当前系统是否已安装JDK 通过命令java –version 如果有出现如下图提示表示有安装&#xff0c;则无需再安装 二、 安装JDK 通过JDK官网https://www.oracle.com/上下载需要的JDK 版本&#xff0c;下载完成后上传到linux 系统上指定的文件夹下。&#xff08;可以用宝…

Springboot配置高级

临时属性设置 带属性数启动SpringBoot java –jar springboot.jar –-server.port80携带多个属性启动SpringBoot&#xff0c;属性间使用空格分隔 属性加载优先顺序 参看https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-fea…

Linux驱动开发(Day5)

思维导图&#xff1a; 不同设备号文件绑定&#xff1a;

Wireshark流量分析

目录 1.基本介绍 2.基本使用 1&#xff09;数据包筛选: 2&#xff09;筛选ip&#xff1a; 3&#xff09;数据包还原 4&#xff09;数据提取 3.wireshark实例 1.基本介绍 在CTF比赛中&#xff0c;对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含…

移动,电信,联通流量卡该怎么选?

是电信便宜&#xff0c;移动稳定&#xff0c;还是联通性价比高&#xff1f; ​ 今天&#xff0c;小编从三大流量卡的优缺点方面来讲&#xff0c;教你如何选择流量卡了。 一、移动流量卡 优点&#xff1a;信号好&#xff0c;可以说走到什么地方都有信号。 缺点&#xff1a;资…

【面试题】JDK(工具包)、JRE(运行环境和基础库)、JVM(java虚拟机)之间的关系?

【面试题】JDK、JRE、JVM之间的关系&#xff1f; JDK(Java Development Kit):Java开发工具包&#xff0c;提供给Java程序员使用&#xff0c;包含了JRE&#xff0c;同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。 JRE(Java Runtime Environment):Java运行时环境&…

Jvm之JIT优化详细解释

文章目录 一、JIT 产生的背景二、HotSpot虚拟机内置JIT编译器1. Client Compiler2. Server Compiler3. 查看本地编译器模式 三、常见热点探测技术1. 基于计数器的热点探测2. 基于采样的热点探测2.1 方法调用计数器2.2 回边计数器 四、常见JIT优化手段1. 公共子表达式消除2. 方法…

【android12-linux-5.1】【ST芯片】驱动与HAL移植后数据方向异常

ST的传感器驱动与HAL一直成功后&#xff0c;能拿到数据了&#xff0c;但是设备是横屏&#xff0c;系统默认是竖屏。就会出现屏幕自动转动时方向是错的的情况&#xff0c;设备横立展示的是竖屏&#xff0c;设备竖立展示的是横屏。 这个是PCB上设计的传感器贴片方向和横屏不一致…

windows10系统安装docker desktop超常见问题

问题报错&#xff1a; An unexpected error was encountered while executing a WSLcommand. Common causes include access rights issues, which occurafter waking the computer or not being connected to your domain/active directory. Please try shutting WSL down (w…

深度学习基础知识-pytorch数据基本操作

1.深度学习基础知识 1.1 数据操作 1.1.1 数据结构 机器学习和神经网络的主要数据结构&#xff0c;例如 0维&#xff1a;叫标量&#xff0c;代表一个类别&#xff0c;如1.0 1维&#xff1a;代表一个特征向量。如 [1.0&#xff0c;2,7&#xff0c;3.4] 2维&#xff1a;就是矩…

SAP 之如何定义功能范围Function Area

目录 目录 前言 一、注意点 二、使用步骤 1. Step by step 2. 其它功能 总结 前言 在SAP中&#xff0c;FA功能范围是一个组织单元&#xff0c;一般根据活动对产生的运营费用进行分类。例如生产、管理、销售、研发等&#xff0c;可以分配给成本中心Cctr、GL总账科目、Ord…

研磨设计模式day11观察者模式

目录 场景 代码示例 定义 观察者模式的优缺点 本质 何时选用 简单变型-区别对待观察者 场景 我是一家报社&#xff0c;每当我发布一个新的报纸时&#xff0c;所有订阅我家报社的读者都可以接收到 代码示例 报纸对象 package day11观察者模式;import java.util.Observ…

扫雷小游戏

目录 一.扫雷小游戏 二.游戏主体一览 ​编辑 三.模块化设计扫雷游戏 3.1打印欢迎菜单 3.2创建两个二维数组 3.3棋盘稍加修改 3.4布置雷 3.5排查雷 四.游戏总体代码 4.1game.h头文件 4.2game.c函数实现源文件 4.3游戏main函数主体 五.游戏效果图 一.扫雷小游戏 这是…