React 环境搭建
理论讲完了,现在动手把 React 项目跑起来。今天搭建 React 项目只用一个命令, thanks to Vite——比几年前的 create-react-app 快好几倍,而且是官方推荐的新方案。
1. 前置准备:装 Node.js
React 项目运行在 Node.js 环境里。去 nodejs.org 下载 LTS 版本(长期支持版,目前是 20.x),一路下一步安装。装好后打开终端(Windows 用 PowerShell / Git Bash,Mac 用 Terminal),输入:
node -v应该输出版本号,如v20.11.0。npm -v应该输出 npm 版本号(npm 是 Node 的包管理器,装 Node 时自带)。
如果两个命令都有版本号输出,说明环境 OK,可以进入下一步。建议 Node 版本不低于 18。
2. 用 Vite 创建项目(推荐)
Vite 是新一代前端构建工具,由 Vue 作者 Evan You 开发,但完美支持 React。它启动开发服务器几乎瞬间(不像老工具要等几十秒),热更新也飞快。创建 React 项目只要三步:
# 1. 用 Vite 创建 React 项目(推荐,几秒搞定)
npm create vite@latest my-app -- --template react
# 2. 进入项目目录,安装依赖
cd my-app
npm install
# 3. 启动开发服务器
npm run dev
# 浏览器打开 http://localhost:5173 看到页面浏览器打开 localhost:5173,你会看到一个旋转的 React logo 和一个计数器按钮——这就是 Vite 给你生成的模板项目。试着改改 src/App.jsx 里的文字,保存后页面会自动刷新,这就是"热更新"。
关于 create-react-app(已不推荐)
老教程里你会看到 npx create-react-app my-app 这种写法,这是 React 官方以前的脚手架工具 CRA。但它在 2023 年已被官方废弃(停止维护),启动慢、配置死板。新项目请一律用 Vite,本系列所有示例都基于 Vite。
3. package.json 是什么
package.json 是项目的"身份证",记录项目名、依赖的包、可运行的脚本。打开它看看:
{
"name": "my-app",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite", // 启动开发服务器(热更新)
"build": "vite build", // 打包构建到 dist/
"preview": "vite preview" // 本地预览构建产物
},
"dependencies": {
"react": "^18.2.0", // React 核心
"react-dom": "^18.2.0" // React 的 DOM 渲染器
},
"devDependencies": {
"@vitejs/plugin-react": "^4.0.0",
"vite": "^5.0.0"
}
}几个关键字段:
dependencies:生产依赖,即运行时需要的包(如react、react-dom)。部署到服务器时这些必须装。devDependencies:开发依赖,只在开发时用(如vite构建工具本身)。部署时不需要。scripts:自定义命令。npm run dev实际上跑的就是vite这个命令。
4. 三大常用脚本
npm run dev:启动开发服务器,带热更新。写代码时一直开着。npm run build:打包构建,把 src 里的源码编译压缩成浏览器能直接跑的静态文件,输出到dist/目录。准备上线时跑。npm run preview:本地预览 build 后的产物,模拟线上环境,确认打包结果正常。
5. 项目目录结构
打开项目文件夹,你会看到这样的结构:
my-app/
├── node_modules/ # 依赖包(自动生成,不要手动改)
├── public/ # 静态资源(不经过构建处理)
│ └── vite.svg
├── src/ # 源代码(你主要在这里写)
│ ├── App.jsx # 根组件
│ ├── App.css # 根组件样式
│ ├── index.css # 全局样式
│ ├── main.jsx # 入口文件:挂载 React 到 HTML
│ └── assets/ # 会被构建处理的资源
│ └── react.svg
├── index.html # HTML 模板(Vite 入口)
├── package.json # 项目依赖与脚本
├── vite.config.js # Vite 配置
└── .gitignore作为初学者,你99% 的时间都在 src/ 里写代码,其他文件夹和文件先不用管。两个最关键的文件是入口 main.jsx 和根组件 App.jsx。
6. 入口文件 main.jsx
main.jsx 是整个应用的入口,只做一件事:把 React 组件挂到 HTML 页面上。
// src/main.jsx:整个应用的入口
import React from "react";
import { createRoot } from "react-dom/client";
import App from "./App";
import "./index.css";
// 把 App 组件挂载到 index.html 里 id="root" 的 div
createRoot(document.getElementById("root")).render(
<React.StrictMode>
<App />
</React.StrictMode>
);index.html 里有一个 <div id="root">,React 会把整个应用渲染到这个 div 里——这种叫单页应用(SPA):整个网页只有一个 HTML,内容全是 JS 动态渲染的。React.StrictMode 是开发模式下的辅助工具,会故意多跑一次渲染帮你发现潜在问题,生产环境自动失效。
7. 根组件 App.jsx
App.jsx 是你接触最多的文件,模板里自带一个计数器示例:
// src/App.jsx:根组件,所有页面都从这里开始
import { useState } from "react";
import "./App.css";
function App() {
const [count, setCount] = useState(0);
return (
<div className="App">
<h1>我的第一个 React 应用</h1>
<button onClick={() => setCount(count + 1)}>
点击了 {count} 次
</button>
</div>
);
}
export default App;不用纠结每行什么意思,后面会逐章讲。现在你只需要知道:这就是一个普通的 JS 函数,返回一段像 HTML 又像 JS 的东西(JSX)。把它改成你想要的样子,保存,页面立刻变化——这就是 React 开发的日常。
8. 装一个 VS Code 插件
用 VS Code 写 React,强烈推荐装 esbenp.prettier-vscode(代码格式化)和 dsznajder.es7-react-js-snippets(React 代码片段,输入 rafce 自动生成一个组件骨架)。这两件套能极大提升写代码的幸福感。
小结
这一章我们用 Vite 把 React 项目跑了起来,认识了 package.json、目录结构、三大脚本和入口文件。现在你已经有了一个能跑的"实验室",后面所有的代码示例都可以贴到这个项目里试。下一篇我们正式进入 React 的核心语法——JSX。
← 上一篇 React 简介
下一篇 JSX 语法 →