React入门教程:从安装到第一个应用
开篇:React是什么?用来做什么?

你可能听说过很多关于“前端开发”的词汇,比如HTML、CSS、JavaScript……但突然有一天,有人告诉你:“你可以试试React”。那么React到底是什么呢?它能做什么呢?
什么是React?
React是一个由Facebook公司开发的JavaScript库(Library)。它帮助我们更高效地构建网页中的交互界面,特别是那些需要用户操作和动态数据更新的部分。
简单来说,React就像是一个帮你搭建“乐高积木”的工具包,让你能够更容易地组织复杂的网页功能,并让它们运行得更快更稳定。
React是用来做什么的?
在现代网页开发中,我们不仅要展示信息,还要让用户可以点击按钮、输入内容、查看实时数据等。例如:
- 社交媒体页面上,点赞后数字自动增加;
- 购物网站商品推荐模块随用户的浏览记录更新;
- 在线聊天室里消息实时滚动。
这些互动性强、响应速度快的特性正是React所擅长的领域。
为什么适合新手学习?
尽管听起来很专业,但React的学习曲线并不陡峭,而且它的生态系统非常成熟,社区资源丰富。作为初学者,掌握React不仅有助于理解现代前端技术的工作原理,还能为你之后探索Vue.js或Angular等框架打下基础。
接下来,让我们开始一步步搭建React开发环境吧!
环境准备:React开发环境搭建指南

要开始使用React,我们需要准备好一些工具和环境。别担心,虽然步骤看起来有点多,但都是很基础的内容,跟着一步一步来就可以完成设置。
第一步:安装Node.js和npm
React项目通常通过**npm(Node Package Manager)**进行管理。而npm是随着Node.js一起提供的。
- 打开你的浏览器,前往https://nodejs.org
- 下载并安装适合你系统的版本(建议选择长期支持版 LTS)
- 安装完成后,在命令行工具(Windows用CMD,Mac/Linux用终端)中运行以下命令测试是否安装成功:
node -v
如果看到输出类似 v16.x.x 的版本号表示 Node.js 安装成功。
接着输入:
npm -v
如果有输出 npm version 8.x.x 这样的信息,则说明 npm 也已经安装好啦!
第二步:安装Create React App(CRA)
为了简化初始化过程,React官方提供了一个工具叫做 Create React App(简称 CRA)。我们可以用它快速创建一个新的React项目。
在命令行中运行下面这行代码:
npx create-react-app my-first-react-app
这里的 my-first-react-app 是你项目的文件夹名称,你可以根据自己的喜好命名。
等待几秒钟下载完所需依赖后,进入该目录:
cd my-first-react-app
最后启动开发服务器:
npm start
此时浏览器会自动打开 http://localhost:3000 页面,默认显示的是React的欢迎界面。
🎉 恭喜!你现在已经建立起了一个基本的React项目开发环境。
小提示:常用开发工具推荐
- 编辑器:强烈推荐使用免费开源的 Visual Studio Code(VS Code),其对 JavaScript 支持非常好。
- 浏览器开发者工具:Chrome 浏览器自带了强大的调试工具(F12快捷键调出),可以帮助你实时查看 HTML 结构与调试 JS 错误。
- 扩展插件:对于 VS Code 来说,安装 “ESLint” 和 “Prettier - Code formatter” 插件可以提升编码体验。
现在一切都就绪了,下一步我们将逐步了解React的一些核心概念。
核心概念:理解组件、JSX、状态与props

组件是什么?
可以把React应用程序看作是由很多小块组成的拼图 —— 每一块就是一个组件。每个组件负责渲染一部分页面内容。这种划分结构的方式使得开发和维护都更加容易。
举个简单的例子:在一个博客系统中,可能会有以下组件:
- 博客文章标题组件
- 用户评论组件
- 导航栏菜单组件
用代码来看看一个组件长什么样
新建一个文件叫 HelloWorld.js,然后在里面写如下代码:
import React from 'react';
function HelloWorld() {
return (
<div>
<h1>你好,React!</h1>
<p>这是我的第一个React组件</p>
</div>
);
}
export default HelloWorld;
再打开你刚刚创建好的项目的 src/App.js 文件,将其内容替换为以下代码以导入这个组件:
import React from 'react';
import HelloWorld from './HelloWorld'; // 注意路径要正确哦
function App() {
return (
<div className="App">
<HelloWorld />
</div>
);
}
export default App;
刷新浏览器页面,你应该能看到 "你好,React!" 这句话出现啦 🎉
这就是最简单的React组件示例。注意这里引入了 JSX语法 —— 我们很快就会讲到它。
JSX简介:像写HTML一样编写JSX
JSX 是一种嵌入式的 XML 语法,允许你在 JavaScript 中直接编写 HTML-like 的结构代码,这样可以让UI结构表达更加直观清晰。
比如上面代码里的:
<div><h1>你好,React!</h1></div>
其实本质上还是JavaScript对象,只不过被Babel工具转化了。你不需要担心兼容性问题,因为create-react-app默认集成了这些处理工具。
状态(State)与 props:数据驱动视图的核心
State(状态)的概念
当我们在页面上有一些数据会随着时间变化时,我们可以把这些数据保存在 state 中。state 就是组件内部的一个变量集合,一旦 state 改变,对应部分的 UI 自动更新。
来看看带有状态的组件例子:
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0); // 初始化 count 值为 0
return (
<div>
<p>当前计数: {count}</p>
<button onClick={() => setCount(count + 1)}>加一</button>
</div>
);
}
在这个例子中,每当点击按钮,setCount() 方法改变了 count 的值,界面上显示的数字也会随之变化。这就是 React 数据绑定的魅力之一!
Props 的作用
如果说 state 是组件内部自己管理的数据,那 props 就是从外部传进来的数据。它是父子组件之间通信的一种方式。
假设我们要给 HelloWorld 组件传递一段文字内容。修改一下我们的 HelloWord.js 文件:
import React from 'react';
function HelloWorld(props) {
return (
<div>
<h1>{props.title}</h1>
<p>{props.subtitle}</p>
</div>
);
}
同时修改 App.js 来传递参数:
<HelloWorld title="欢迎来到React世界" subtitle="这是副标题文本"/>
刷新浏览器,你现在就能看到通过 props 动态传入的不同内容啦 😊
以上我们就介绍了React中最基础但也最重要的四个概念:组件、JSX、状态以及props。这些都是构建复杂应用的基础砖石。不过不用太紧张 —— 接下来我们将一起动手做一个完整的小应用,巩固这些知识点。
实战项目:用React做一款天气查询小程序
终于到了实际操作环节啦!本节将教你一步步制作一个简易的天气查询应用,包含输入城市名称、获取天气数据及显示结果的功能。我们将结合前面所学的内容,把知识应用起来。

步骤一:添加样式与布局结构
首先,我们需要为用户输入框和结果显示区域设计一些基本布局和外观。
修改 App.js 文件如下:
import React from 'react';
import './App.css';
function App() {
return (
<div className="app-container">
<h1>天气查询小助手</h1>
{/* 输入框 */}
<input type="text" placeholder="请输入城市名称" />
{/* 查询按钮 */}
<button>查询天气</button>
{/* 天气数据显示区 */}
<div className="weather-info">
<p>温度:__℃</p>
<p>天气状况:____</p>
</div>
</div>
);
}
export default App;
接着编辑 App.css 添加简单的样式美化:
.app-container {
max-width: 400px;
margin: 50px auto;
padding: 20px;
border-radius: 10px;
background-color: #f0f8ff;
text-align: center;
}
input[type="text"] {
width: 70%;
height: 30px;
font-size: 16px;
margin-bottom: 10px;
padding-left: 10px;
}
button {
width: 70%;
height: 40px;
background-color: #5bc0de;
color: white;
font-weight: bold;
border: none;
border-radius: 5px;
}
保存之后回到浏览器确认基本界面已经搭建完成。现在让我们让它具备真正的天气数据展示能力吧!
步骤二:获取天气数据 API 接口
网上有很多公开的天气API可供使用。例如OpenWeatherMap 免费提供了城市天气查询接口。
你需要先注册一个账号得到一个专属的API Key。
然后按照文档构造请求地址,格式大致如下:
api.openweathermap.org/data/2.5/weather?q={city}&appid={your_api_key}&units=metric&lang=zh_cn
其中 {city} 是你要查询的城市名,比如“shanghai”,而 {your_api_key} 替换成你自己申请的密钥。
步骤三:整合异步请求逻辑(使用 useEffect)
接下来在组件中集成网络请求功能。为此我们引入新的React Hook——useEffect,并利用原生fetch进行异步数据获取。
完整代码如下:
import React, { useState, useEffect } from 'react';
import './App.css';
function App() {
const [city, setCity] = useState('');
const [temperature, setTemperature] = useState(null);
const [description, setDescription] = useState('');
async function fetchWeatherData() {
if (!city) return; // 如果没有输入则不执行请求
const apiKey = 'YOUR_API_KEY'; // 替换为你自己的OpenWeather API Key
const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric&lang=zh_cn`;
try {
const response = await fetch(url);
const data = await response.json();
console.log(data);
if (response.ok) {
setTemperature(Math.round(data.main.temp)); // 取整
setDescription(data.weather[0].description);
} else {
alert("无法找到指定城市的天气信息");
}
} catch (error) {
console.error('获取天气失败:', error);
alert("加载天气信息出错,请检查网络连接!");
}
}

return (
<div className="app-container">
<h1>天气查询小助手</h1>
<input
type="text"
value={city}
onChange={(e) => setCity(e.target.value)}
placeholder="请输入城市名称"
/>
<button onClick={fetchWeatherData}>查询天气</button>
{temperature !== null && (
<div className="weather-info">
<p>温度:<strong>{temperature}℃</strong></p>
<p>天气状况:<strong>{description}</strong></p>
</div>
)}
</div>
);
}
export default App;
⚠️请务必替换成自己的真实 API KEY,否则无法正常访问天气数据!
运行效果预览
当你输入一个城市名称如“北京”,然后点击查询按钮,稍等片刻应该可以看到对应的温度和天气描述信息被成功地展示出来咯 ✅
这个小小的应用涵盖了多个关键点:
- 使用 input 组件监听用户输入
- 利用状态控制数据流动
- 发起 HTTP 请求获取远程数据
- 渲染动态内容
如果你已经完成了这个例子,恭喜你迈出了成为 React 开发者的重要一步!
常见问题解答
1. 为什么我启动项目的时候报错?
有时候可能因为缓存或者某些配置错误导致项目无法运行。尝试以下方法:
- 清除缓存:删除 node_modules 文件夹和 package-lock.json 文件后重新安装依赖 (
npm install) - 更新 CRA 版本:确保你使用的 create-react-app 工具是最新的版本
2. 修改了代码但网页没有自动刷新?
默认情况下,npm start 开启的本地开发服务器具备热重载功能,即更改源码会立即反映在浏览器中。如果没有反应,请检查是否有报错出现在控制台,并且确保所有必要的服务均正常运行。
3. 出现“ReferenceError: regeneratorRuntime is not defined”怎么办?
这个问题通常发生在你不小心混用了 ES6+ 与旧版编译规则。解决方法很简单:在入口文件顶部加上:
import 'regenerator-runtime/runtime'
另外考虑升级你的构建工具链至最新稳定版本。
4. 如何更好地理解组件间的通信?
React推崇“单向数据流”的设计哲学,父组件通过 props 向下传递数据,子组件通过回调函数向上反馈事件。建议多画流程图理清关系,必要时可用 Context API 或 Redux 管理共享状态。
学习建议:后续路线规划
完成上述练习以后,你已经初步掌握了如何使用React来创建简单应用。但还有更多有趣又实用的技术等着你去探索!
以下是几个推荐方向供参考:
- 🔁 更深入了解 Hooks(如 useContext、useReducer、自定义Hooks)
- 🧰 学习 Redux 进行全局状态管理
- 🌐 使用 axios / react-query 替代 fetch 发起高级 AJAX 请求
- 📱 构建移动应用:配合 React Native 技术栈
- 🎨 加入 CSS-in-JS 解决方案:styled-components, emotion
当然还可以继续回到本教程中练习其他主题,不断积累实战经验才是成长为优秀开发者的捷径!
Happy Coding 🚀

评论 0