react | 从零开始:使用 Create React App 创建你的第一个 React 项目

1.react 脚手架

  1. xxx脚手架: 用来帮助程序员快速创建一个基于xxx库的模板项目
    1. 包含了所有需要的配置(语法检查、jsx编译、devServer...)
    2. 下载好了所有相关的依赖
    3. 可以直接运行一个简单效果
  2. react提供了一个用于创建react项目的脚手架库: create-react-app
  3. 项目的整体技术架构为: react + webpack + es6 + eslint
  4. 使用脚手架开发的项目的特点: 模块化, 组件化, 工程化

2. 创建项目并启动

第一步,全局安装:

bash 复制代码
npm i -g create-react-app

第二步,切换到想创项目的目录,使用命令:

bash 复制代码
create-react-app react-first

第三步,cd到对应项目目录,运行

bash 复制代码
npm start

3.运行效果

4.项目目录分析

文件/目录 用途
package.json 项目配置 & 依赖管理
public/index.html HTML 模板,React 挂载点
src/index.js JS 入口,渲染根组件
src/App.js 根组件(UI 入口)
src/*.css 样式文件
public/manifest.json PWA 配置
src/reportWebVitals.js 性能监控
build/ 生产构建输出目录
1. package.json
  • 作用:定义项目元信息、依赖包、脚本命令等。
  • 关键字段
    • "dependencies":生产依赖(如 react, react-dom
    • "devDependencies":开发依赖(如 @testing-library/react, web-vitals
    • "scripts":常用命令
      • start → 启动开发服务器(http://localhost:3000
      • build → 打包生产代码到 build/ 目录
      • test → 运行单元测试
      • eject → 弹出配置(不推荐,不可逆)
2. public/index.html
  • 作用:应用的 HTML 模板(单页应用的入口 HTML)。
  • 关键点
    • 包含 <div id="root"></div>,React 渲染的挂载点。
    • 使用 %PUBLIC_URL% 占位符(如 <link rel="icon" href="%PUBLIC_URL%/favicon.ico">),构建时会被替换为正确路径。
3. public/manifest.json
  • 作用:PWA(渐进式 Web 应用)配置文件,用于离线缓存、添加到主屏幕等。
  • 可通过 serviceWorkerRegistration 控制是否启用 PWA。
4. public/robots.txt
  • 作用:告诉搜索引擎爬虫哪些页面可以抓取(默认允许全部)。

src/ 目录(核心源码)

1. src/index.js
  • 作用:JavaScript 入口文件。
  • 功能
    • 引入 ReactReactDOM
    • 获取 #root DOM 节点
    • 渲染 <App /> 组件
    • (可选)注册 Service Worker(PWA)
javascript 复制代码
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import reportWebVitals from './reportWebVitals';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);
reportWebVitals(); // 性能监控
2. src/App.js
  • 作用:根组件(顶层 UI 组件)。
  • 默认包含一个简单示例 UI,你可以在此构建整个应用的布局或路由。
3. src/App.css
  • 作用App.js 对应的样式文件。
  • CRA 支持 CSS、CSS Modules、Sass 等(需安装 node-sass 或 sass)。
4. src/index.css
  • 作用:全局样式(如重置样式、字体、body 样式等)。
  • index.js 中被引入。
5. src/logo.svg
  • 作用:示例图片资源(React 官方 logo),演示如何导入静态资源。
6. src/reportWebVitals.js
  • 作用:集成 Web Vitals 性能指标(如 FID、CLS、LCP)。
  • 可用于监控真实用户性能体验,可连接 Google Analytics 等。
7. src/setupTests.js
  • 作用:测试环境的全局设置(如 Jest 配置)。
  • 默认引入 @testing-library/jest-dom,提供额外的断言方法(如 toBeInTheDocument())。

其他重要文件(可能隐藏或后期生成)

.gitignore
  • 忽略 node_modules/build/.env.local 等无需提交的文件。
README.md
  • 项目说明文档,包含 CRA 的使用指南、可用脚本、部署建议等。
node_modules/
  • 所有依赖包(由 npm installyarn install 安装)。
build/(运行 npm run build 后生成)
  • 生产环境打包后的静态文件(HTML、JS、CSS、图片等),可直接部署到服务器。
相关推荐
nnnnna40 分钟前
watch监听(一篇文章彻底搞懂watch监听)
前端·vue.js
hmywillstronger41 分钟前
【React 】ASD Structure Drawing Layer Coding System (2007)
javascript·react.js·ecmascript
科普瑞传感仪器44 分钟前
基于六维力传感器的机器人柔性装配,如何提升发动机零部件装配质量?
java·前端·人工智能·机器人·无人机
步步为营DotNet1 小时前
深入理解IAsyncEnumerable:.NET中的异步迭代利器
服务器·前端·.net
JackieDYH1 小时前
CSS滚动吸附详解:构建精准流畅的滚动体验-scroll-snap-type
前端·css
CodeCraft Studio1 小时前
纯前端文档编辑组件——Spire.WordJS全新发布
前端·javascript·word·office·spire.wordjs·web文档编辑·在线文档编辑器
前端一课1 小时前
第 32 题:Vue3 Template 编译原理(Template → AST → Transform → Codegen → Render 函数)
前端·面试