React入门教程:从安装到第一个应用

技术清醒派
2025-06-20 06:48
阅读 354

一、什么是React?它能做什么?

一、什么是React?它能做什么?

React 是一个由 Facebook 开发并维护的前端 JavaScript 库,专门用于构建用户界面(UI)。你可以把它看作是一个“积木盒子”,里面有很多组件(Component),我们可以通过组合这些组件来搭建一个漂亮的网页或 Web 应用。

React 的特点:

  • 📌 组件化开发:每个页面都可以拆分成多个小部分,单独开发和管理。
  • 📌 声明式编程:你只需告诉 React 要显示什么内容,而不是怎么一步步操作。
  • 📌 单向数据流:让状态管理和调试更加简单清晰。
  • 📌 支持服务端渲染(SSR):提高 SEO 和首屏加载速度。

✅ 小结:React 就是一个帮助你快速高效开发现代 Web 应用的“工具包”。


二、环境准备:开始前的基础设置

二、环境准备:开始前的基础设置

2.1 安装 Node.js 和 npm

React 项目通常使用 npm(Node.js 的包管理器)来进行依赖管理和打包。所以在开始之前,我们需要先安装好 Node.js。

  1. 访问 https://nodejs.org
  2. 点击 LTS 版本进行下载
  3. 安装完成后,在终端运行以下命令查看版本:
node -v   # 查看 node 版本
npm -v    # 查看 npm 版本

如果能看到类似 v16.14.2 这样的输出,说明已经安装成功!


2.2 使用 Vite 创建 React 项目

我们推荐新手使用 Vite 来创建 React 项目。相比传统的 Create React App (CRA),Vite 启动更快、配置更灵活。

步骤如下:

  1. 在终端中执行以下命令(以项目名为 my-react-app 为例):
npm create vite@latest my-react-app --template react
  1. 进入项目目录:
cd my-react-app
  1. 安装依赖:
npm install
  1. 启动开发服务器:
npm run dev

此时终端会显示一个本地地址(比如 http://localhost:5173),在浏览器中打开即可看到初始页面。

⚠️ 注意:不同机器启动端口可能不同,请根据终端提示访问对应地址。


2.3 编辑器推荐

建议使用 VS Code,它是目前最流行的前端开发编辑器之一,免费且功能强大。

  • 下载地址:https://code.visualstudio.com/
  • 推荐插件:
    • Prettier(格式化代码)
    • ES7+ React/Redux/React-Native Snippets(自动补全 React 模板)

三、React 核心概念讲解(零基础也能理解)

三、React 核心概念讲解(零基础也能理解)

学习 React,你至少要了解以下几个关键词:组件、JSX、状态、props、函数组件 vs 类组件

3.1 组件:React 的最小单位

你可以把组件想象成一个个乐高积木,它们可以独立开发,也可以组合在一起形成完整页面。

示例:定义一个按钮组件

function Button() {
  return <button>点我!</button>;
}

然后可以在别的地方调用它:

function App() {
  return (
    <div>
      <h1>欢迎来到我的 React 应用!</h1>
      <Button />
    </div>
  );
}

✅ 小结:组件是 React 最基本的构成单元,用来封装 UI 部分。


3.2 JSX:像 HTML 一样的写法

JSX 是一种混合了 JavaScript 和 HTML 的语法结构,React 就是靠它来描述页面结构的。

比如下面这段代码:

<h1 style={{ color: "red" }}>我是红色标题</h1>

看起来像 HTML,其实是 JavaScript 对象的一种写法。

❗ JSX 必须在 React 项目中使用,并且返回的内容只能有一个顶层标签。


3.3 状态(State):组件内部的数据

状态就像一个组件的“记忆”,可以让它记住一些信息。

例如:一个点击计数器。

import { useState } from 'react';

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

  return (
    <div>
      <p>你点击了 {count} 次</p>
      <button onClick={() => setCount(count + 1)}>点击加一</button>
    </div>
  );
}

useState 是 React 提供的一个“钩子函数”(Hook),它允许我们在不使用类的情况下使用状态。

✅ 小结:状态是保存在组件内部的数据,可以用 useState 来管理。


3.4 Props:组件之间传递数据的方式

有时候你需要把父组件中的数据传递给子组件,这就需要用到 props

示例:父组件传数据给子组件

function Greeting(props) {
  return <h2>你好,{props.name}</h2>;
}

function App() {
  return <Greeting name="Tom" />;
}

在这个例子中,name="Tom" 就是通过 props 传递进来的。

✅ 小结:Props 是父子组件之间沟通的桥梁。


3.5 函数组件 vs 类组件(简单介绍)

现在 React 更推荐使用函数组件 + Hook的方式开发,因为:

  • 写法更简单
  • 可读性更高
  • 更容易测试与复用

类组件比较复杂,适合深入学习时再了解。


四、实战项目:做个简单的待办事项应用

目标:做一个可以添加、删除待办事项的简易 Todo List。

4.1 创建组件结构

我们将用到两个主要组件:

  • App:整个应用的根组件
  • TodoList:显示待办事项列表
  • AddTodo:添加新的待办事项

4.2 添加状态管理

我们用 useState 来管理 todo 列表。

import { useState } from 'react';
import TodoList from './TodoList';
import AddTodo from './AddTodo';

export default function App() {
  const [todos, setTodos] = useState([]);

  const addTodo = (text) => {
    const newTodo = { id: Date.now(), text };
    setTodos([...todos, newTodo]);
  };

  const deleteTodo = (id) => {
    setTodos(todos.filter(todo => todo.id !== id));
  };

  return (
    <div>
      <h1>我的待办清单</h1>
      <AddTodo onAdd={addTodo} />
      <TodoList todos={todos} onDelete={deleteTodo} />
    </div>
  );
}

4.3 实现 AddTodo 组件

// src/AddTodo.jsx
export default function AddTodo({ onAdd }) {
  const handleSubmit = (e) => {
    e.preventDefault();
    const text = e.target.todo.value;
    if (text.trim()) {
      onAdd(text);
      e.target.reset();
    }
  };

  return (
    <form onSubmit={handleSubmit}>
      <input type="text" name="todo" placeholder="输入你的任务..." />
      <button>添加</button>
    </form>
  );
}

4.4 实现 TodoList 组件

// src/TodoList.jsx
export default function TodoList({ todos, onDelete }) {
  return (
    <ul>
      {todos.map((todo) => (
        <li key={todo.id}>
          {todo.text}
          <button onClick={() => onDelete(todo.id)}>删除</button>
        </li>
      ))}
    </ul>
  );
}

4.5 总结一下项目结构

src/
├── App.jsx
├── TodoList.jsx
└── AddTodo.jsx

完成以后运行项目:

npm run dev

访问本地地址就能看到你的第一个 React 应用了!


五、常见问题解答

❓ Q1:React 是不是必须要学 Vue 或 Angular 之前的基础?

不需要。React 是一个独立的库,和其他框架并不冲突。完全可以直接从 React 学起。

❓ Q2:为什么不能直接修改 state?

React 的原则是不可变性(Immutability)。你必须使用 setXXX 方法来更新状态,这样才能保证 React 能正确地识别变化并重新渲染。

❓ Q3:组件名称为什么要大写?

在 JSX 中,小写开头的元素会被当成 HTML 原生标签,比如 <div><p>。如果你写的是自定义组件,必须使用大写开头,如 <MyComponent />

❓ Q4:组件可以没有 return 吗?

不可以。每一个 React 组件都必须返回一段 JSX,或者 null。


六、下一步学习路径建议

恭喜你完成了第一个 React 应用!接下来你可以继续学习以下内容,逐步提升你的 React 水平:

✅ 初级阶段可掌握:

  • 熟悉常用的 Hook:useEffect, useRef, useCallback
  • 数据请求:配合 Axios 或 fetch 获取远程数据
  • 使用 CSS 模块或 Tailwind CSS 设计样式
  • 表单处理和验证

✅ 中高级阶段可扩展:

  • 使用 React Router 实现页面跳转
  • 状态管理:Redux Toolkit / Zustand
  • 构建部署流程:Vite + GitHub Pages
  • TypeScript 支持(类型检查神器)

✅ 推荐学习资源:

  • 官方文档:https://react.dev
  • React 教程视频:Bilibili 搜索 “React 入门”
  • 书籍推荐:《React 学习手册》《React 精髓》

七、总结

React 是现代 Web 开发中非常重要的一环。虽然一开始可能会有点抽象,但只要你动手实践、不断尝试,你会发现它的逻辑其实很清晰,也非常好上手。

本文带你完成了从环境搭建、核心概念理解到实战项目的全流程,希望你能坚持练习,真正掌握 React!

继续加油,你正在成为优秀的前端开发者!


📌 文章约 2650 字,涵盖理论 + 实践,适合零基础初学者系统学习 React。

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝