CodeRoadMap
路线图学习路径文章题库资源社区

浏览

首页路线图学习路径知识库题库文章资源社区我的学习
CodeRoadMap

中文编程学习导航:路线图、讲义与题库,进度可同步。

路线图学习路径文章题库社区

© 2026 CodeRoadMap

津ICP备2026012044号-1|coderoadmap@126.com
首页/全栈 Web 开发/React 入门

课程目录

  1. 01HTML & CSS 基础
  2. 02JavaScript 核心
  3. 03JavaScript 练习
  4. 04React 入门
  5. 05React 项目
  6. 06Node.js 与 API
  7. 07数据库
  8. 08全栈毕业项目
第 04 课

React 入门

组件、Props、State、Hooks 与组件组合。

课程内容

React 入门

React 用组件的方式构建界面:把 UI 拆成独立、可复用的小块,每块管理自己的状态和渲染逻辑。

学习目标

  • 理解组件化思想和 JSX 语法
  • 用 Props 在组件间传递数据
  • 用 useState 管理组件状态
  • 用 useEffect 处理副作用(请求数据、定时器等)

组件与 JSX

// 组件就是一个返回 JSX 的函数
function Welcome({ name }) {
  return <h1>你好,{name}!</h1>;
}

// 组合使用
function App() {
  return (
    <main>
      <Welcome name="小明" />
      <Welcome name="小红" />
    </main>
  );
}

JSX 要点:

  • 标签必须闭合,相邻元素要包在一个父元素(或 <>...</>)里
  • 属性用驼峰:className、onClick
  • {} 里可以写任意 JS 表达式

Props:数据向下流动

function UserCard({ user, onFollow }) {
  return (
    <div className="card">
      <img src={user.avatar} alt={user.name} />
      <h3>{user.name}</h3>
      <button onClick={() => onFollow(user.id)}>关注</button>
    </div>
  );
}

Props 是只读的——子组件不能修改传入的 props。数据自上而下流动,事件通过回调函数向上传递。

State:组件的记忆

import { useState } from "react";

function Counter() {
  const [count, setCount] = useState(0); // 声明状态

  return (
    <button onClick={() => setCount(count + 1)}>
      点了 {count} 次
    </button>
  );
}

状态一变,组件自动重新渲染——这就是 React 的核心:UI = f(state),你只关心状态长什么样,渲染交给 React。

useEffect:副作用

import { useEffect, useState } from "react";

function UserList() {
  const [users, setUsers] = useState([]);
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    fetch("https://jsonplaceholder.typicode.com/users")
      .then(res => res.json())
      .then(data => {
        setUsers(data);
        setLoading(false);
      });
  }, []); // 空依赖数组 = 只在首次渲染后执行一次

  if (loading) return <p>加载中…</p>;
  return (
    <ul>
      {users.map(u => <li key={u.id}>{u.name}</li>)}
    </ul>
  );
}

列表与 key

渲染列表时必须给每项一个稳定唯一的 key(用数据 id,不要用数组下标),否则列表更新时可能出现状态错乱。

动手练习

  1. 计数器:加、减、重置三个按钮,步长可切换(1 / 5 / 10)。
  2. 待办应用:组件拆成 <TodoInput>、<TodoList>、<TodoItem>,支持增删改、筛选(全部/未完成/已完成)。
  3. 用户列表:从 JSONPlaceholder 拉数据,加加载态和错误态。

参考资源

  • React 官方中文文档(含交互式教程)
  • The Odin Project — React 课程

观看视频课程

https://www.theodinproject.com/paths/foundations/courses/foundations

← 上一课JavaScript 练习下一课 →React 项目