React 入门:组件化思维的初体验
在现代 Web 开发中,React 无疑是最流行和最具影响力的 JavaScript 库之一。它由 Facebook 开发并维护,其核心思想是“组件化”,即将复杂的用户界面拆分成一个个独立、可复用的小部件。本篇文章将带你从零开始,体验如何用 React 构建你的第一个组件。bn.gdpingjia.com
什么是 React?vl1z0.aijiu520.com
React 是一个用于构建用户界面的 JavaScript 库。它让你能够通过组合“组件”来创建复杂的 UI。想象一下用乐高积木搭建城堡,每一块积木就是一个组件,它们各自独立,但可以组合在一起形成强大的整体。要快速启动一个 React 项目,我们可以使用官方提供的脚手架工具 create-react-app。wcrdkx.aijiu520.com
# 使用 npx 运行 create-react-app 来创建一个名为 "my-react-app" 的新项目 npx create-react-app my-react-app
探索你的第一个 React 项目5940s.aijiu520.com
运行上面的命令后,它会为你生成一个完整的项目结构。现在,请进入项目目录并启动开发服务器。在终端中,你会看到项目正在运行,并且通常会在浏览器中自动打开 http://localhost:3000。这个默认页面就是我们修改的起点。e6tb.aijiu520.com
# 进入项目目录 cd my-react-app # 启动开发服务器 npm start
JSX:在 JavaScript 中写 HTML
打开 src/App.js 文件,你会看到一些类似 HTML 的代码。这其实是 JSX (JavaScript XML),它是 React 的一个语法扩展。JSX 让你能够在 JavaScript 代码中直接编写 UI 结构,这使得组件的代码更加直观和声明式。它最终会被编译成普通的 JavaScript 调用。
// src/App.js
import React from 'react';
function App() {
return (
<div className="App">
<header className="App-header">
<h1>欢迎来到我的 React 应用</h1>
</header>
</div>
);
}
export default App;
创建你的第一个自定义组件1nng.aijiu520.com
React 的核心就是组件。现在,让我们来创建自己的第一个组件。在 src 文件夹下,新建一个名为 Welcome.js 的文件。在这个文件中,我们将定义一个函数,这个函数将返回一些 JSX。这个函数就是一个 React 组件。hp8m0.aijiu520.com
// src/Welcome.js
import React from 'react';
function Welcome() {
return <h1>你好,世界!</h1>;
}
export default Welcome;
使用组件并传递 Props ofz2k.aijiu520.com
组件的强大之处在于它们的可复用性和数据传递能力。我们可以通过“props”(properties)将数据从父组件传递给子组件。让我们修改 Welcome 组件,让它接收一个 name prop,然后在 App.js 中使用它并传递不同的名字。zngmr.aijiu520.com
// src/Welcome.js (修改后)
import React from 'react';
// 接收 props 并使用 props.name
function Welcome(props) {
return <h1>你好,{props.name}!</h1>;
}
export default Welcome;
现在,你可以在 App.js 中导入并使用 Welcome 组件了。bftxy.aijiu520.com
// src/App.js (修改后)
import React from 'react';
import Welcome from './Welcome'; // 导入我们创建的组件
import './App.css';
function App() {
return (
<div className="App">
<Welcome name="Alice" />
<Welcome name="Bob" />
<Welcome name="Charlie" />
</div>
);
}
export default App;
保存文件后,你的浏览器会自动刷新,并显示出三条个性化的欢迎语。恭喜你,你已经成功创建了可复用的 React 组件,并学会了如何使用 props 来传递数据!58p0d.aijiu520.com

