阶段1:React 是什么
🎯 学习目标
理解 React 的本质和优势,为后续学习打下认知基础。
一、通俗比喻:React 就像"智能装修工"
传统 JavaScript 开发(原生 JS)
想象你要装修房子:
- 每次改动都要自己动手: 要换个灯泡?你得爬梯子、拆旧灯、装新灯、测试
- 效率低: 改10个地方就要重复10次操作
- 容易出错: 哪个步骤忘了,整个灯就不亮了
// 传统方式:手动操作每一步
document.getElementById('title').innerHTML = '新标题';
document.getElementById('count').innerHTML = count + 1;
document.querySelector('.button').style.color = 'red';
// 要改3个地方,写3行代码,手动查找每个元素
React 开发
- 智能装修工: 你只需说"我要现代风格",工人自动帮你搞定所有细节
- 自动更新: 你说"把客厅灯换成暖色",工人自动找到客厅灯并更换
- 高效: 工人知道哪些地方需要改,哪些不用动
// React方式:你只说"要什么",React自动帮你实现
<h1>{title}</h1>
<p>{count}</p>
<button style={{color: 'red'}}>点击</button>
// 数据变了,页面自动更新,不用手动操作DOM
二、React 核心优势(对比传统开发)
1. 组件化开发 - 像搭积木一样写代码
传统方式的痛点:
<!-- 写了10个页面,每个都要复制粘贴这段导航栏代码 -->
<nav>
<a href="/">首页</a>
<a href="/about">关于</a>
<a href="/contact">联系</a>
</nav>
<!-- 老板说改个链接,你要改10个文件... -->
React 方式:
// 一次定义,到处使用
function Navbar() {
return (
<nav>
<a href="/">首页</a>
<a href="/about">关于</a>
</nav>
);
}
// 在任何页面直接用
<Navbar /> // 就这么简单!改一处,所有页面都更新
比喻: 就像做菜时提前准备好"料包",用的时候直接倒,不用每次都切葱姜蒜。
2. 数据驱动视图 - 数据变,页面自动变
传统方式的痛点:
let count = 0;
// 数据变了,要手动改页面
function addCount() {
count++; // 数据变了
document.getElementById('num').innerHTML = count; // 手动更新页面
document.getElementById('tip').innerHTML = count > 5 ? '太多了!' : ''; // 还要手动改提示
// 如果有10个地方显示count,要写10行更新代码...
}
React 方式:
function Counter() {
const [count, setCount] = useState(0); // 定义数据
return (
<div>
<p>数量: {count}</p> {/* 数据变了,这里自动更新 */}
<p>{count > 5 ? '太多了!' : ''}</p> {/* 这里也自动更新 */}
<button onClick={() => setCount(count + 1)}>
加1
</button>
</div>
);
}
// 只需改数据,页面自动跟着变!
比喻: 传统JS像手动挡汽车(踩离合、换挡、给油,步步都要你操心); React像自动挡(你只管踩油门,其他自动搞定)。
3. 虚拟DOM - 聪明的"最小改动"机制
什么是虚拟DOM?(通俗解释)
想象你要修改一篇Word文档:
传统方式(直接操作真实DOM):
- 改一个字 → 整篇文档重新打印 → 效率低,很卡
React方式(虚拟DOM):
- 改一个字 → React先在草稿纸(虚拟DOM)上改
- 对比草稿纸和原文档,发现只有1个字不同
- 只重新打印那1个字 → 快!
传统: 改1个字 → 刷新整个页面 → 慢
React: 改1个字 → 只更新那1个字 → 快
技术细节(了解即可,现在不懂没关系):
- 虚拟DOM是用JavaScript对象模拟的页面结构
- React会对比新旧虚拟DOM,找出差异
- 只更新有变化的部分到真实DOM
三、React 适合做什么?
✅ 适合的场景
- 交互频繁的页面: 购物车、聊天室、仪表盘
- 数据经常变的应用: 社交媒体、新闻网站
- 复杂的单页应用: 后台管理系统、在线工具
❌ 不太适合的场景
- 纯静态页面: 公司简介、产品介绍(用HTML/CSS更简单)
- SEO要求极高的页面: 新闻门户首页(需要服务端渲染)
四、学习React需要什么基础?
✅ 你已经具备的(够用了!)
- HTML/CSS: 知道怎么写页面结构和样式
- JavaScript基础: 变量、函数、数组、条件判断
📚 React会用到的JS知识(边学边掌握)
- 箭头函数:
const add = (a, b) => a + b - 模板字符串:
`你好,${name}` - 解构赋值:
const {name, age} = person - 数组方法:
map(),filter()
别担心! 这些在后面的实战中会反复用到,自然就学会了。
五、学习路线预览
阶段1 (当前) ✓ 理解React是什么
↓
阶段2 → 安装工具,创建第一个项目
↓
阶段3 → 学会写"组件"(React的积木)
↓
阶段4 → 让页面"动起来"(状态管理)
↓
阶段5 → 响应用户操作(事件处理)
↓
阶段6 → 显示列表数据(渲染技巧)
↓
阶段7 → 做个TodoList(综合实战)
↓
阶段8 → 下一步学什么?(进阶方向)
✅ 阶段1总结
核心要点:
- React是一个"智能装修工",帮你自动更新页面
- 三大优势:组件化(搭积木)、数据驱动(自动更新)、虚拟DOM(性能快)
- 适合做交互多、数据变化频繁的应用
- 你的JS基础已经足够开始学习
下一步: 准备好了吗?下一阶段我们将安装工具,创建你的第一个React项目!
💡 思考题(可选)
回想你平时用的网站/App:
- 哪些功能适合用React开发?(提示:想想哪些地方数据经常变)
- 哪些页面用传统HTML/CSS更简单?
例如:
- ✅ 微信朋友圈(不断刷新新消息) → 适合React
- ❌ 公司官网首页(内容固定) → HTML/CSS就够了