⚛️ 什么是React?
📖 定义
React是Facebook(Meta)开发的用于构建用户界面的JavaScript库。它使用基于组件的架构创建可重用的UI,并使用Virtual DOM高效更新屏幕。声明式编程简化了复杂UI的管理。
🎯 简单类比
乐高积木
React组件 = 乐高积木
├─ 组合小积木
├─ 多次重复使用相同积木
├─ 轻松构建复杂结构
└─ 根据需要更换积木
<House>
<Roof />
<Wall />
<Door />
<Window />
</House>
⚙️ 核心概念
组件结构
// 函数组件(现代方法)
function Welcome({ name }) {
return <h1>你好,{name}!</h1>;
}
// 使用
<Welcome name="张三" />
状态管理
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>计数:{count}</p>
<button onClick={() => setCount(count + 1)}>
增加
</button>
</div>
);
}
useEffect Hook
import { useState, useEffect } from 'react';
function UserProfile({ userId }) {
const [user, setUser] = useState(null);
useEffect(() => {
fetch(`/api/users/${userId}`)
.then(res => res.json())
.then(data => setUser(data));
}, [userId]); // userId变化时运行
return <div>{user?.name}</div>;
}
💡 关键示例
列表渲染
function TodoList() {
const [todos, setTodos] = useState([
{ id: 1, text: '锻炼', done: false },
{ id: 2, text: '学习', done: true }
]);
return (
<ul>
{todos.map(todo => (
<li key={todo.id}>
{todo.text}
</li>
))}
</ul>
);
}
表单处理
function LoginForm() {
const [formData, setFormData] = useState({
username: '',
password: ''
});
const handleChange = (e) => {
setFormData({
...formData,
[e.target.name]: e.target.value
});
};
const handleSubmit = (e) => {
e.preventDefault();
// API调用...
};
return (
<form onSubmit={handleSubmit}>
<input name="username" onChange={handleChange} />
<input name="password" type="password" onChange={handleChange} />
<button type="submit">登录</button>
</form>
);
}
🤔 常见问题
Q1. 为什么使用React?
// ❌ Vanilla JS(复杂)
const button = document.createElement('button');
button.addEventListener('click', () => {
// 手动DOM操作
});
// ✅ React(简单)
function Counter() {
const [count, setCount] = useState(0);
return <button onClick={() => setCount(count + 1)}>{count}</button>;
}
Q2. 什么是JSX?
A: JavaScript + XML语法用于React元素:
// JSX
const element = <h1 className="title">你好</h1>;
// 转换为
React.createElement('h1', { className: 'title' }, '你好');
Q3. 什么是Hook?
A: 让函数组件使用状态和生命周期的函数:
useState // 状态管理
useEffect // 副作用(API调用)
useContext // Context访问
useRef // DOM访问
useMemo // 记忆化
useCallback // 函数记忆化
🎬 总结
- 组件: 可重用的UI块
- Virtual DOM: 高效更新
- JSX: 直观语法
- Hook: 强大的函数组件
使用React构建交互式应用程序! ⚛️