React 入门不难:从安装到第一个应用的完整实录
开始之前:一个真实的故事

我是从事前端开发的五年“老码农”了,回过头来看,第一次接触 React 还是在项目组里临时换技术栈的时候。当时我们正准备重构公司的一个内部管理后台,原本是用 Vue 的单页应用,后来因为团队扩招、代码可维护性问题以及组件复用需求剧增,最终决定转向 React。而我作为主力开发者之一,开始了与 React 的“亲密接触”。
今天我想分享一下这段经历中最基础但又最关键的部分:如何从零开始搭建一个 React 项目并跑起来你的第一个应用。这不是一篇照搬官方文档的文章,而是基于我这几年踩过的坑、走过的弯路和解决的实际问题总结出来的一套入门路径。如果你是刚起步的学习者或者想转行的新人,这篇教程会很适合你。
背景描述:为什么选择 React?

React 是由 Facebook 推出的 JavaScript 库,用于构建用户界面,特别是单页应用(SPA)。它现在已经是前端圈子里的主流技术之一,尤其是在大中型公司项目中广泛使用。它的核心优势:
- 组件化开发:将页面拆成多个独立、可复用的组件。
- 虚拟 DOM:提升渲染性能。
- 生态成熟:React 生态包括 React Router、Redux、React Hook Form 等一系列工具,帮助开发者高效构建复杂项目。
- 社区活跃:遇到问题 Google 或 Stack Overflow 上很容易找到解决方案。
所以在我参与的那个重构项目中,React 成为了首选框架。我们希望借助 React 更好的组件管理和状态控制能力,来支撑更灵活的功能扩展。
第一步:环境搭建与项目初始化

使用 Vite + React 模板快速创建
以前我们可能会推荐 Create React App (CRA),但现在我更倾向于使用 Vite,因为它更快,支持 TypeScript、JSX、CSS 预处理器等现代特性,而且开箱即用。
npm create vite@latest my-react-app -- --template react
然后你会看到命令行提示一些选项,比如是否使用 TypeScript、是否启用 JSX 支持等。这里我们先选 JS 版本练手。
接下来进入目录并安装依赖:
cd my-react-app
npm install
启动开发服务器:
npm run dev
浏览器打开 http://localhost:5173(端口可能不同),你应该就能看到 Vite 默认的欢迎页面了。
💡 小贴士:Vite 内置的是轻量级打包方案,比 webpack 快很多。非常适合中小型项目的快速搭建。
实战演练:写我们的第一个 React 组件

创建一个最简单的组件
React 最基本的单位就是组件。我们先从最简单的函数组件开始写起。
在 src/main.jsx 中,默认已经有了一个挂载组件:
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.jsx 文件内容:
function App() {
return (
<div>
<h1>Hello, React!</h1>
</div>
)
}
export default App
保存后,刷新页面,应该就会显示 “Hello, React!”。没错,这就是你的第一个 React 页面!
深入一点:做一个带交互的小功能
需求说明:点击按钮切换标题内容
我们来增加一个按钮,点击后能切换标题的内容。
修改 App.jsx 如下:
import { useState } from 'react'
function App() {
const [text, setText] = useState('Hello, React!')
const handleClick = () => {
setText(text === 'Hello, React!' ? '再见了,React!' : 'Hello, React!')
}
return (
<div>
<h1>{text}</h1>
<button onClick={handleClick}>切换标题</button>
</div>
)
}
export default App
这里的知识点有:
- 引入
useState来做状态管理 - 函数组件中的事件绑定(onClick)
- 动态更新 UI
效果就是点击按钮时,标题会来回切换文本。
实际开发中遇到的一些“坑”
我在初期学习 React 时也踩过几个比较典型的坑,这里分享出来希望能帮大家避雷。
1. 初始项目结构不清晰
早期我习惯用 CRA,但它默认的目录结构很简单,对大型项目不够友好。建议一开始就规划好组件结构,例如:
src/
├── components/ // 可复用组件
├── pages/ // 页面级组件
├── assets/ // 图片、图标等静态资源
├── App.jsx // 根组件
└── main.jsx // 入口文件
2. 不懂 React 的渲染机制,频繁触发重渲染
早期我有个习惯就是在组件中直接写函数,比如:
const MyComponent = () => {
const getLabel = () => '点击我';
return <button>{getLabel()}</button>;
}
这种写法虽然没问题,但如果 MyComponent 有很多子元素或高频率更新时,会导致每次渲染都重新定义函数,性能损耗。正确的做法是用 useCallback 包裹函数,避免重复生成。
3. 缺乏调试意识,靠 console 打印调试效率低
建议使用 React Developer Tools 浏览器插件,实时查看组件结构、props 和 state,这对排查问题是神器级别。
调试技巧和工具推荐
- React DevTools:Chrome 插件,可以看组件层级关系、状态变化
- ESLint + Prettier:配合 VSCode 插件自动格式化代码,统一风格
- React Hook Form:表单验证利器,大大减少手动处理逻辑的工作量
- React Query / SWR:处理异步请求的高级封装库,比原生 fetch 箳用得多
- React.memo / useMemo / useCallback:优化组件渲染性能的三大法宝
性能优化小提醒
React 本身自带一定的性能优化,但在实际项目中还是要注意以下几点:
- 避免不必要的组件渲染:合理使用
React.memo - 合理使用 key 值:列表渲染时 key 尽量不要用 index
- 懒加载路由组件:使用
React.lazy+Suspense - 图片优化:使用
srcset、WebP 格式,压缩大小 - 服务端渲染(SSR):SEO 或首屏性能要求高的项目建议结合 Next.js 或 RSC
总结:我的成长之路,给你的建议
通过这个小小的 React 学习过程,我自己也经历了从抵触、迷茫到上手再到熟练的过程。React 的学习曲线一开始看起来陡峭,其实只要掌握几个关键点,就能迅速建立起信心。
以下是几点建议送给你:
- 不要怕学新东西:React 学起来确实要比原生 JS 多一些概念,但它带来的收益远大于学习成本。
- 多动手写 Demo:别光看文档,一定要跟着敲代码。
- 关注用户体验:前端不仅是写代码,还要考虑页面交互是否流畅、体验是否顺滑。
- 注重工程化:组件命名、目录结构、代码规范这些细节会在未来让你少踩很多坑。
- 持续学习:React 也在不断演进,比如最近流行的 Server Components、Streaming SSR,都是值得了解的方向。
结语:从第一个组件出发,走向更大的世界
现在再回头看我那个重构项目,已经用 React 完成了十几个模块的迁移,并且性能、可维护性和协作效率都有明显提升。React 已经成为了我工作中不可或缺的一部分。
这篇文章虽然只是入门级别的教学,但我希望它不仅仅是教你怎么“跑起来”,而是告诉你为什么要这样设计、为什么会这么做。这些背后的思考和经验,才是你在成长过程中真正需要的东西。
加油吧,未来的 React 工程师!如果你觉得这篇对你有帮助,欢迎点赞收藏,有任何疑问也欢迎留言交流。我也是从一行代码开始,一步步走到现在的。
Happy Coding! 🎉

评论 0