React 前端框架入门教学


React 是目前最流行的前端框架之一,由 Facebook 开发和维护。它主要用于构建用户界面,强调组件化开发高效更新。在本文中,我们将从零开始,逐步学习 React 的核心概念和基本用法。即使你是初学者,也能通过本文入门。


一、什么是 React?

React 是一个用于构建用户界面的 JavaScript 库,它的特点包括:

  1. 组件化开发:将 UI 划分为独立的、可复用的组件,便于维护和扩展。
  2. 声明式编程:通过声明式代码描述 UI 状态,React 会高效地更新和渲染需要改变的部分。
  3. 虚拟 DOM:React 使用虚拟 DOM 机制来提升性能,将变化计算后再一次性更新真实 DOM。

二、React 环境搭建

我们将通过 create-react-app 快速创建一个 React 项目。

1. 准备工具
  • Node.js :下载并安装 Node.js,安装后会自带 npm 包管理工具。
  • 代码编辑器 :推荐使用 VS Code
2. 创建项目

打开终端,运行以下命令:

复制代码
npx create-react-app my-react-app

这会创建一个名为 my-react-app 的 React 项目。

3. 启动项目

进入项目文件夹并启动开发服务器:

复制代码
cd my-react-app
npm start

浏览器会自动打开并显示一个 React 默认页面。


三、React 核心概念

1. 组件(Component)

组件是 React 的核心,可以理解为一个独立的 UI 模块。组件分为两种:

  • 函数组件(推荐)
  • 类组件

示例:创建一个简单组件

src 文件夹中,编辑 App.js

复制代码
function Welcome() {
  return <h1>Hello, React!</h1>;
}

export default Welcome;
2. JSX

JSX 是一种在 JavaScript 中嵌入 HTML 的语法扩展,看起来像 HTML,但实际是 JavaScript 的语法糖。

注意:JSX 的规则

  • 使用 大括号 {} 嵌入 JavaScript 表达式。
  • 每个标签必须关闭,比如 <img />
  • 最外层必须有一个父容器。
3. Props(属性)

props 是组件的输入参数,用于传递数据。

示例:使用 props

复制代码
function Greeting(props) {
  return <h1>Hello, {props.name}!</h1>;
}

// 在父组件中调用
<Greeting name="Alice" />
4. State(状态)

state 是组件内部动态变化的数据。

示例:使用 state

复制代码
import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>Click me</button>
    </div>
  );
}

四、React 项目结构

React 项目的典型结构如下:

复制代码
src/
├── components/   // 组件文件夹
├── App.js        // 主组件
├── index.js      // 项目入口文件
└── styles/       // 样式文件夹

将功能划分到独立的组件文件中,便于团队协作和代码维护。


五、React 基本操作

1. 条件渲染

根据条件显示不同内容:

复制代码
function Login(props) {
  if (props.isLoggedIn) {
    return <h1>Welcome back!</h1>;
  } else {
    return <h1>Please log in.</h1>;
  }
}
2. 列表渲染

使用 .map() 渲染列表:

复制代码
function ItemList(props) {
  const items = props.items;
  return (
    <ul>
      {items.map(item => (
        <li key={item.id}>{item.name}</li>
      ))}
    </ul>
  );
}
3. 表单处理

处理用户输入:

复制代码
function Form() {
  const [inputValue, setInputValue] = useState("");

  const handleChange = (e) => {
    setInputValue(e.target.value);
  };

  const handleSubmit = (e) => {
    e.preventDefault();
    alert(`You entered: ${inputValue}`);
  };

  return (
    <form onSubmit={handleSubmit}>
      <input type="text" value={inputValue} onChange={handleChange} />
      <button type="submit">Submit</button>
    </form>
  );
}

六、部署你的 React 应用

  1. 构建项目:

    复制代码
    npm run build

    这会生成一个 build 文件夹,包含优化后的静态文件。

  2. 部署到静态服务器(例如 GitHub Pages 或 Vercel)。


七、小结

学习 React 不必急于求成。可以从以下几个方面继续深入:

  • 熟悉 React Router 用于路由管理。
  • 学习 Context 和 Redux 进行全局状态管理。
  • 学习性能优化技巧,如 React.memo 和 lazy loading。

希望这篇博客能帮助你理解 React 的基础知识并动手实践!继续练习和探索,你会更深入地掌握它的强大功能。

相关推荐
先吃饱再说3 小时前
React 组件通信:从 Props 单向传递到自定义事件
前端·react.js·前端框架
qetfw19 小时前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具
hoLzwEge20 小时前
拯救低效调试!code-inspector-plugin 让代码定位如虎添翼
前端·前端框架·node.js
阿懂在掘金1 天前
企业级命令式弹窗方案:三行代码适配已有 Dialog
前端·vue.js·前端框架
阿懂在掘金1 天前
做命令式弹窗工具应该考虑什么——我为什么把 vue-layerx 设计成这样
前端·前端框架·函数式编程
LaughingZhu1 天前
Product Hunt 每日热榜 | 2026-07-23
前端·神经网络·react.js·搜索引擎·前端框架
GuWenyue2 天前
放弃云端API!一套React+WebGPU本地LLM方案,零数据上传、离线可用
前端·人工智能·前端框架
shawxlee2 天前
vue3在public下封装config.js自定义配置动态数据,可在打包后直接修改,方便后端部署及后续维护
前端·javascript·经验分享·vue·团队开发·js·项目优化
Bad_Shepherd2 天前
vue-element-plus-admin添加自定义svg图标,并且图标选择组件可选自定义图标
vue.js·elementui·前端框架
hoLzwEge3 天前
解码 IDE 智能提示:jsconfig.json 辅助开发全攻略
前端·前端框架