普通视图

发现新文章,点击刷新页面。
昨天 — 2025年6月8日首页

🚀 React初体验:从“秃头程序员”到“数据魔法师”的奇幻漂流

作者 WildBlue
2025年6月8日 17:33

🌟 1. React是啥?(What)

“DOM操作 = 手工搬砖?React = 搭积木!”

为什么你需要React?

想象你是个刚入行的“前端切图崽”,老板甩给你一坨HTML/CSS代码,让你改个按钮颜色得写10行JS,删个元素得翻山越岭找DOM节点……

💡 React就是你的“乐高积木”

  • 把页面拆成多个组件(Component),每个组件就像一块积木,组合起来就是完整大楼
  • {}语法糖把JS代码直接塞进HTML,告别document.getElementById的“考古式编码”

image.png

代码彩蛋:App.jsx开箱即用

// 组件就是一个函数!返回HTML的魔法函数
function App() {
  return (
    <div>
      <h1>我是React组件!</h1>
    </div>
  )
}

🤯 对比原生JS

// 原生JS需要手动操作DOM
document.body.innerHTML = '<h1>我是原生JS!</h1>'

⚙️ 2. 项目搭建指南(How)

npm init vite = 前端界的“一键建房”

image.png

三步打造React城堡

  1. 初始化项目
    npm init vite my-app -- --template react
    # vite帮你建好“毛坯房”,不用再手写webpack配置(秃头程序员的救星!)
    
  2. 安装依赖
    cd my-app && npm install
    # node_modules就像装修公司的材料库,React组件们要靠它才能活过来
    
  3. 启动开发服务器
    npm run dev
    # 3000端口已就位,请查收你的第一个React页面!🎉
    

踩坑日记:Node版本引发的血案

某次安装时用了Node 14,vite直接报错:“你out了,请升级到16+!”
💡 建议:用nvm管理Node版本,避免“老板说需求紧急,你却卡在环境配置”的尴尬


🔁 3. 响应式数据的秘密(How)

useState = 数据世界的“橡皮擦+复制机”

image.png

为什么直接改状态会翻车?

🤯 反面教材

const todos = ['吃饭', '睡觉', '学习']
todos.push('养鱼') // ❌ 错误!React不会知道数据变了

正确姿势

const [todos, setTodos] = useState(['吃饭', '睡觉', '学习'])
setTodos([...todos, '养鱼']) // ✅ 用setTodos告诉React:“嘿,数据更新啦!”

代码彩蛋:setTimeout模拟“养鱼”任务

setTimeout(() => {
  setTodos(['吃饭', '睡觉', '学习', '养鱼'])
  setTitle('字节之星') // 状态更新触发页面重渲染
}, 5000)

image.png

->

image.png

🧠 灵魂拷问
“为什么不能直接改todos.push()?”
“React就像班主任查作业——你没用setTodos,它怎么知道要改页面?”


🧩 4. TODO列表实战(Why)

map方法 = “批量生成表格的魔法咒语”

image.png

动态渲染列表的奥义

{
  todos.map((item, index) => (
    <tr>
      <td>{index + 1}</td>
      <td>{item}</td>
    </tr>
  ))
}

🌈 对比原生JS

// 原生JS需要手动循环+拼接字符串
let html = ''
for (let i = 0; i < todos.length; i++) {
  html += `<tr><td>${i+1}</td><td>${todos[i]}</td></tr>`
}
document.body.innerHTML = html

🎯 5. 5W1H总结(Who/When/Where/What/How/Why)

问题 答案
Who 前端小白/刚接触React的新手
When 需要从零构建响应式Web应用时
Where 浏览器端(React可结合Next.js做服务端渲染)
What React是声明式UI框架,用组件+状态管理替代DOM操作
How npm init vite初始化项目 → 用组件封装业务 → 用useState管理状态变化
Why 让程序员告别DOM暴力美学,专注业务逻辑

🧠 思维导图总结(文字版)

React核心思想
├── 组件化(乐高积木)
│   ├── 函数组件
│   └── JSX语法({JS表达式})
├── 响应式数据
│   ├── useState = [数据, 修改方法]
│   └── 状态更新触发重渲染
└── 项目搭建
    ├── npm init vite(一键建房)
    └── 开发服务器(3000端口)

💡 程序员三大快乐时刻

  1. npm install成功 ✅
  2. 代码一次过 🎉
  3. 老板不加需求 😂

🚀 现在,快去你的React世界“搭积木”吧!如果觉得本文有用,请点个赞,让更多“秃头程序员”看到这份“数据魔法师”的指南!

❌
❌