作为 Vue2 开发者,你已经具备前端开发的核心概念(如组件化、状态管理、生命周期等),转向 React 的学习曲线会相对平缓。以下是针对你的背景整理的 React 快速入门指南,重点聚焦与 Vue2 的差异和核心知识点:
一、React 基础核心概念
1. JSX 语法(类比 Vue 的模板)
- 是什么:JavaScript 的语法扩展,允许在 JS 中直接写 HTML 结构。
-
Vue 对比:类似 Vue 的模板语法,但 JSX 更灵活(可直接用 JS 逻辑)。
// React const element = <h1>Hello, {name}</h1>; // Vue2 <template> <h1>Hello, {{ name }}</h1> </template>
2. 组件编写方式
-
函数组件(主流):
function Welcome(props) { return <h1>Hello, {props.name}</h1>; } -
类组件(Vue2 开发者更熟悉,但已逐渐淘汰):
class Welcome extends React.Component { render() { return <h1>Hello, {this.props.name}</h1>; } }
3. 状态管理:useState vs Vue data
-
React:
import { useState } from 'react'; function Counter() { const [count, setCount] = useState(0); // 类似 Vue 的 data return <button onClick={() => setCount(count + 1)}>{count}</button>; } -
Vue2:
data() { return { count: 0 }; }, methods: { increment() { this.count++; } }
4. 生命周期 → Hooks
-
React (函数组件):
import { useEffect } from 'react'; useEffect(() => { // 类似 Vue 的 mounted/updated console.log('组件渲染完成或更新'); return () => { console.log('类似 Vue 的 beforeDestroy'); }; // 清理副作用 }, [dependencies]); -
Vue2:
mounted() { console.log('组件挂载'); }, destroyed() { console.log('组件销毁'); }
二、必须掌握的 React 特性(Vue 中没有的)
1. 不可变数据思想
- React 中直接修改状态不会触发更新,必须用
setState或 Hook 的更新函数:// ❌ 错误 const [user, setUser] = useState({ name: 'Alice' }); user.name = 'Bob'; // 不会触发渲染 // ✅ 正确 setUser({ ...user, name: 'Bob' }); // 创建新对象
2. 条件渲染与列表渲染
-
条件渲染:
{isShow && <div>内容</div>} // 类似 Vue 的 v-if -
列表渲染:
{items.map(item => ( <div key={item.id}>{item.name}</div> // key 是必须的,类似 Vue 的 v-for ))}
3. 事件处理
- React 事件是合成事件,命名采用驼峰式:
<button onClick={handleClick}>点击</button> // 注意是 onClick,不是 @click
三、Vue2 与 React 的映射表
| 概念 | Vue2 | React |
|---|---|---|
| 模板 |
<template> + 指令 |
JSX |
| 状态 | data() |
useState / useReducer
|
| 计算属性 | computed |
useMemo |
| 方法 | methods |
直接在组件内定义函数 |
| 组件通信 |
props + $emit
|
props + 回调函数 |
| 全局状态 | Vuex | Context API / Redux / Zustand |
| 路由 | Vue Router | React Router |
四、学习路径建议
-
快速上手:
- 通过 官方教程 完成一个简单 demo。
- 用 React 重写你的一个 Vue2 组件(如 TodoList)。
-
工程化:
- 学习
Create React App或Vite + React搭建项目。
- 学习
-
状态管理进阶:
- 先掌握
Context API,再学习Redux Toolkit(类比 Vuex)。
- 先掌握
-
生态迁移:
- Vue Router → React Router
- Axios → 直接复用(React 中没有
this.$http,需手动导入)。
五、常见坑点(Vue 开发者易错)
-
不要直接修改状态:必须用
setState或 Hook 的更新函数。 -
key的重要性:列表渲染时必须提供唯一key(和 Vue 类似,但 React 更严格)。 -
样式处理差异:
- React 默认推荐 CSS-in-JS(如
styled-components)或 CSS Modules。 - 没有
scoped scss,需手动处理作用域。
- React 默认推荐 CSS-in-JS(如
六、资源推荐
-
练习项目:
- React 官方教程 Tic-Tac-Toe 游戏
- Vue 转 React 的 TodoList 对比(找 React 版本对照)
-
UI 库:
- Material-UI / Ant Design(类比 Element UI)
通过以上步骤,你可以在 1-2 周 内快速上手 React 基础开发。遇到问题时,多思考:“Vue 中是怎么做的?React 的差异在哪里?” 这种对比学习会事半功倍!