同一个问题,两种解法 —— 但最终效果一样
传统方式(jQuery)vs 现代方式(React / Vue)
一个 TP-Link 产品卡片,分别用 React 和 Vue 写
特点:HTML 写在 JS 里面(叫 JSX)。一切都是 JavaScript。
特点:HTML、JS、CSS 分区写在一个文件里。更像传统网页结构。
React 和 Vue 用不同的机制实现相同的效果
类比:你要按门铃(setState),React 才知道来开门。
类比:家里装了智能摄像头,有人来了自动开门,不用按门铃。
同一个计数器,模拟 React 和 Vue 的工作方式
点击按钮,观察两边的状态更新和渲染日志的差异
展示组件如何组合,数据如何在组件间流动
对于 TP-Link 项目,这个决策已经做了(Next.js = React),但理解差异有助于和团队沟通
| 维度 | React | Vue |
|---|---|---|
| 诞生 | 2013 · Facebook | 2014 · 尤雨溪(个人) |
| 定位 | UI 库(只管界面渲染) | 渐进式框架(可大可小) |
| 写法风格 | JS 为中心(HTML 写在 JS 里) | HTML 为中心(JS 写在 HTML 旁边) |
| 状态更新 | 显式调用 setState | 自动追踪依赖 |
| 全栈框架 | Next.js(Vercel) | Nuxt(社区) |
| 生态规模 | 最大,npm 包最多 | 大,中文社区尤其活跃 |
| 大厂使用 | Meta、Netflix、Airbnb、Shopify | 阿里、小米、GitLab、Apple(部分) |
| 学习曲线 | 中等(JSX 需要适应) | 较低(更接近传统 HTML) |
| Shopify 支持 | 官方 Hydrogen 框架(基于 React) | 社区方案,非官方 |
| 招聘市场(美国) | 岗位最多 | 较少 |