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

精准_数据
2025-06-28 01:33
阅读 284

一、开篇:什么是React,它能做什么?

一、开篇:什么是React,它能做什么?

在学习前端开发的过程中,你可能会听到“React”这个名字。那么,React到底是什么呢?

简单来说,React 是一个由 Facebook 开发和维护的前端框架(也可以说是库),它专门用来构建用户界面(UI),尤其是交互性很强的网页应用。

它适合用在哪里?

  • 构建现代网页应用(如电商网站、社交平台)
  • 单页应用(SPA):页面切换更快,用户体验更好
  • 高频更新的界面:比如聊天应用、实时数据仪表盘等
  • 移动端也可以:通过 React Native 可以开发手机App

它的核心思想是“组件化开发”,你可以把整个页面拆分成很多个“零件”,然后一个一个地组装起来。这种开发方式更清晰、更易维护,也更适合团队协作。


二、环境准备:一步步搭建你的React开发环境

二、环境准备:一步步搭建你的React开发环境

第一步:安装Node.js 和 npm

React 的项目创建需要依赖 Node.jsnpm(Node Package Manager)。
👉 到官网 https://nodejs.org 下载并安装 LTS 版本即可。

安装完成后,在命令行工具中输入:

node -v
npm -v

如果能看到版本号输出,说明安装成功。


第二步:使用 Vite 或 Create React App 创建项目

目前有两种主流的方式可以创建React项目:

  1. 使用官方推荐的 create-react-app 工具(简称 CRA)
  2. 使用轻量快速的 Vite

我们选择更现代化、速度更快的 Vite + React 模板来搭建我们的第一个项目。

✅ 安装步骤(使用Vite)

打开终端,输入以下命令开始创建项目:

npm create vite@latest my-first-react-app --template react

等待片刻后,会提示你选择是否使用 TypeScript,这里我们选 “No”。

进入项目目录,并安装依赖:

cd my-first-react-app
npm install

启动开发服务器:

npm run dev

然后打开浏览器访问:http://localhost:5173

如果你看到 Vite 的欢迎页面,说明开发环境已经搭建成功啦!


三、核心概念:轻松理解React的基本结构与原理

三、核心概念:轻松理解React的基本结构与原理

现在我们有了开发环境,接下来我们来看看 React 最基础、最重要的几个概念。


1. 组件(Component)

在 React 中,一切都基于组件。可以把组件看成一个 UI 的“积木块”。

组件分为两种类型:

  • 函数组件(Function Component)
  • 类组件(Class Component) —— 现在较少使用了

我们先来写一个最简单的函数组件。

function Hello() {
  return <h1>你好,React!</h1>;
}

这个组件会在页面上显示一行文字:“你好,React!”。


2. JSX语法:让 HTML 和 JavaScript 共舞

你可能注意到了上面代码中 <h1>你好,React!</h1> 这样的写法。这不是普通的字符串,也不是HTML,而是 JSX语法

JSX 是 JavaScript XML 的缩写,它允许我们在 JS 文件中像写 HTML 一样写标签结构。

📌 小贴士:

  • 所有自定义组件必须以大写字母开头,比如:Hello
  • JSX 中的属性要用驼峰命名,例如:className="title",而不是原生的 class

3. 渲染组件:把组件展示出来

要让组件出现在页面上,我们需要把它渲染出来。通常我们在入口文件中进行渲染操作。

在 Vite 创建的项目中,入口文件通常是 main.jsx(或 .tsx 如果用了TypeScript),内容如下:

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';

ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

这行 <App /> 表示我们要渲染 App 这个组件到 id 为 root 的 DOM 容器中。


4. 状态(State):动态变化的数据管理

React 为我们提供了管理状态的机制,叫做 useState Hook

下面是一个例子:点击按钮改变名字

import { useState } from 'react';

function ChangeName() {
  const [name, setName] = useState("小明");

  function handleClick() {
    setName("小花");
  }

  return (
    <div>
      <p>当前名字是:{name}</p>
      <button onClick={handleClick}>换名字</button>
    </div>
  );
}
  • useState 返回一个数组,包含当前值和更新方法
  • setName 改变 name 后,React 自动重新渲染组件

5. Props:组件间传递信息

组件之间可以通过 props 传递信息。想象一下,父组件给子组件传话。

// ParentComponent.jsx
function ParentComponent() {
  return <ChildComponent message="这是来自父组件的消息" />;
}

// ChildComponent.jsx
function ChildComponent(props) {
  return <p>{props.message}</p>;
}

四、实战项目:创建你的第一个React应用——待办事项列表(To-Do List)

让我们动手做一个完整的React小应用,加深理解!

我们将要做的是一个简单的“待办事项”功能:可以添加任务、标记完成、删除任务。


步骤1:创建基础组件结构

先在 App.jsx 中创建一个基础布局:

export default function App() {
  return (
    <div>
      <h1>我的待办清单</h1>
      <AddTodoForm />
      <TodoList />
    </div>
  );
}

这里我们用了两个组件:

  • AddTodoForm 用于添加新任务
  • TodoList 展示所有任务

步骤2:实现 AddTodoForm 组件

function AddTodoForm({ onAdd }) {
  const [text, setText] = useState("");

  function handleSubmit(e) {
    e.preventDefault();
    if (!text.trim()) return;
    onAdd(text);
    setText("");
  }

  return (
    <form onSubmit={handleSubmit}>
      <input
        type="text"
        value={text}
        onChange={(e) => setText(e.target.value)}
        placeholder="输入任务内容"
      />
      <button type="submit">添加</button>
    </form>
  );
}

现代网页界面设计示例-2

步骤3:实现 TodoList 组件

function TodoList() {
  const [todos, setTodos] = useState([]);

  function addTodo(text) {
    setTodos([...todos, { text, completed: false }]);
  }

  function toggleComplete(index) {
    const newTodos = [...todos];
    newTodos[index].completed = !newTodos[index].completed;
    setTodos(newTodos);
  }

  function deleteTodo(index) {
    const newTodos = todos.filter((_, i) => i !== index);
    setTodos(newTodos);
  }

  return (
    <ul>
      {todos.map((todo, index) => (
        <li key={index} style={{ textDecoration: todo.completed ? "line-through" : "" }}>
          <span onClick={() => toggleComplete(index)}>{todo.text}</span>
          <button onClick={() => deleteTodo(index)}>删除</button>
        </li>
      ))}
      <AddTodoForm onAdd={addTodo} />
    </ul>
  );
}

效果演示

运行项目后,你会看到一个页面,可以:

  • 添加新的任务
  • 点击任务名称切换完成状态(划掉)
  • 删除某个任务

恭喜你,完成了第一个实用的 React 应用!


五、常见问题解答(FAQ)

响应式布局概念图-1

Q:为什么不能直接修改 state? A:React 要求你通过 setState 更新状态,这样才能触发组件重新渲染。

Q:为什么每个循环都要加 key 属性? A:React 需要用 key 来识别每一个列表项,避免错误更新或重排时出错。

Q:可以用 class 写组件吗? A:可以,不过目前社区更推荐使用函数组件 + Hooks 的方式,代码更简洁清晰。

Q:我应该怎么调试 React 应用? A:可以使用 React Developer Tools 浏览器插件来检查组件树、state等。

Q:为什么点击按钮没反应? A:可能是事件未绑定或函数没有被正确调用,请检查 onClick 是否拼写正确,或者函数有没有参数传递错误。


六、学习建议:下一步该学什么?

学完基础之后,你已经可以开始做简单的 React 项目了。以下是几个推荐继续深入的方向:

📚 学习路线图建议:

学习模块 推荐学习内容
React进阶 useEffect、useRef、自定义Hooks
路由 React Router v6
状态管理 Context API / Redux Toolkit
表单处理 Formik、Yup
样式方案 CSS Modules、Tailwind CSS、styled-components
实战项目 博客系统、商城前台、笔记应用等
测试 Jest + React Testing Library
性能优化 memo、lazy、Suspense

你还可以尝试用 React Native 做跨平台应用,或者配合 GraphQL 做前后端分离。


结语

React 是现代前端开发非常重要的技术栈之一,掌握它将为你打开更多职业发展的机会。

希望这篇入门教程能帮你顺利迈出学习的第一步!记住:多写、多练、不怕错,才是学会编程的关键。

加油,未来的大神正在诞生中🚀!


如果你对后续内容感兴趣,欢迎关注我,我会持续更新系列课程:《React进阶篇》《React项目实战训练营》《从零构建Vue+React双栈前端体系》等等。

Happy Coding!

评论 0

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