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

React从基础入门到高级实战:React 基础入门 - JSX与组件基础

JSX 与组件基础

引言

在 React 开发中,JSX组件 是两个最基础且核心的概念。JSX 是一种独特的语法,让你在 JavaScript 中编写类似 HTML 的代码,而组件则是 React 应用的基本构建块,帮助你将复杂的界面拆分为可复用的模块。本文将带你深入理解 JSX 的语法规则,并学习如何创建和使用 React 组件。通过本文,你将能够编写自己的组件,为后续的 React 开发打下坚实基础。


1. 什么是 JSX?

JSX(JavaScript XML)是 JavaScript 的语法扩展,允许你在代码中直接编写类似 HTML 的标签结构。它让 React 组件的 UI 编写变得直观且易读。

通俗比喻
想象 JSX 是 JavaScript 的“画笔”,你可以用熟悉的 HTML 标签“画”出界面,而 React 会把这些“画”变成真实的网页元素。

基本示例

const element = <h1>Hello, React!</h1>;

这段 JSX 会在页面渲染一个 <h1> 标题。


2. JSX 语法规则

尽管 JSX 看起来像 HTML,但它有自己的规则:

  • 标签必须闭合:所有标签都需要闭合,比如 <img> 要写成 <img />
  • 属性命名:使用 camelCase,例如 className(代替 HTML 的 class)、onClick(代替 onclick)。
  • 嵌入表达式:用 {} 将 JavaScript 表达式嵌入 JSX,比如 {name}{1 + 1}
  • 不支持 if-else:不能直接在 JSX 中写 if-else,但可以用三元运算符或逻辑运算符。

示例

const name = "React";
const element = <p className="greeting">Hello, {name}!</p>;

渲染结果:<p> 标签显示 “Hello, React!”,并应用 greeting 类样式。


3. JSX 中的表达式

JSX 支持在 {} 中嵌入 JavaScript 表达式,比如变量、函数调用或运算。

示例

const user = { firstName: 'Jane', lastName: 'Doe' };
const fullName = () => user.firstName + ' ' + user.lastName;const element = <p>欢迎, {fullName()}!</p>;

渲染结果:“欢迎, Jane Doe!”。

注意

  • {} 内只能放表达式,不能放语句(比如 iffor)。
  • 可以嵌入数组,React 会自动展平渲染。

4. React 组件基础

React 应用由多个组件组成,每个组件负责渲染一小块 UI,可以组合成复杂界面。组件分为函数组件类组件,现代 React 更推荐使用函数组件。

4.1 函数组件

函数组件是一个返回 JSX 的 JavaScript 函数。

示例

function Welcome(props) {return <h1>Hello, {props.name}!</h1>;
}
  • props:父组件传递的数据对象。
  • 组件名需大写开头,如 Welcome
4.2 类组件(了解即可)

类组件使用 ES6 类语法,包含 render 方法返回 JSX。

示例

class Welcome extends React.Component {render() {return <h1>Hello, {this.props.name}!</h1>;}
}

趋势:有了 Hooks,函数组件更简洁,已成为主流。


5. 组件的创建与复用

组件可以通过嵌套复用构建复杂 UI。父组件通过 props 向子组件传递数据。

示例

function App() {return (<div><Welcome name="Alice" /><Welcome name="Bob" /></div>);
}function Welcome(props) {return <p>欢迎, {props.name}!</p>;
}

渲染结果:显示两条欢迎消息,分别是 “欢迎, Alice!” 和 “欢迎, Bob!”。


6. 实践:用户卡片组件

让我们通过一个简单的 UserCard 组件实践 JSX 和组件的使用。

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>React JSX 与组件基础</title><script src="https://cdn.jsdelivr.net/npm/react@18/umd/react.development.js"></script><script src="https://cdn.jsdelivr.net/npm/react-dom@18/umd/react-dom.development.js"></script><script src="https://cdn.jsdelivr.net/npm/babel-standalone@6/babel.min.js"></script>
</head>
<body><div id="root"></div><script type="text/babel">function UserCard(props) {return (<div style={{ border: '1px solid #ccc', padding: '10px', margin: '10px' }}><h2>{props.name}</h2><p>年龄: {props.age}</p><p>职业: {props.job}</p></div>);}function App() {return (<div><UserCard name="Alice" age={25} job="工程师" /><UserCard name="Bob" age={30} job="设计师" /></div>);}ReactDOM.render(<App />, document.getElementById('root'));</script>
</body>
</html>

说明

  • UserCard 组件接收 nameagejob 三个 props,渲染用户信息。
  • App 组件嵌套两个 UserCard,展示不同用户。
  • 打开浏览器开发者工具,粘贴以上代码到 HTML 文件运行,即可看到效果。

7. 总结

本文介绍了 JSX 的语法规则和 React 组件的基本创建与使用。通过实践,你已经能编写简单的组件并组合它们。掌握这些基础将帮助你在 React 开发中更进一步。

有任何疑问,欢迎交流,一起进步!

相关文章:

  • JAVA查漏补缺(2)
  • Ubuntu 上进行树莓派交叉编译
  • 跨域解决方案之JSONP
  • SQL实战之索引失效案例详解
  • 【机械视觉】Halcon—【二、Halcon算子全面介绍(超详细版)】
  • 基于Java(GUI)实现五子棋
  • 【ARM/RISCV 嵌入式 编译系列 16 -- GCC 进制优化编译的常用方法】
  • SQL进阶之旅 Day 1:高效表设计与规范
  • leetcode-快慢指针系列
  • FFTW图像处理之频域滤波和频域分析
  • 2025语音语聊系统源码开发深度解析:WebRTC与AI降噪技术如何重塑语音社交体验
  • 苍穹外卖07 缓存菜品缓存套餐 添加购物车
  • 电脑风扇转速不正常的原因
  • Python、PyTorch、TensorFlow和飞桨(PaddlePaddle)的核心介绍及对比
  • EtherNet IP到modbus TCP网关完成AGV系统的安全解决方案及应用
  • Day34 Python打卡训练营
  • 关于千兆网络变压器的详细介绍
  • 03 基于 java udp 做一个dns服务器 和 一个dns代理服务器
  • 【ISP算法精粹】ISP算法管线的预处理算法有哪些?
  • 新能源汽车滑行阻力参数计算全解析:从理论推导到MATLAB工具实现
  • 北京商场核酸/吉林seo关键词
  • 移动互联网技术就业前景/郑州seo顾问
  • 东莞做网站seo/微信引流主动被加软件
  • 网站建设有什么职位/市场策划方案
  • wordpress 大站点/苏州搜索引擎排名优化商家
  • 开了个网站用年份做名字好吗/网络营销的成功案例有哪些