React:灵活但得自己动手
用 React 开发页面,就像买了一套毛坯房。自由度高,想怎么装修都行,但水电、墙面、地板都得自己来。拿个实际例子说,我们公司做后台系统时选了 React,因为组件复用方便,配合 Hooks 写逻辑也很顺手。
不过,项目一大,性能优化就得上心。比如一个列表页渲染上千条数据,不加 React.memo 或 useCallback,滚动都卡。代码写起来也不算省事:
const ListComponent = ({ items }) => {
return <ul>
{items.map(item => (
<li key={item.id}>{item.name}</li>
))}
</ul>;
};看着简单,真到优化时,各种防重渲染的手段都得跟上,适合团队里有经验的人带。
Vue:上手快,节奏稳
接手新项目时,产品经理甩过来一个两周上线的需求,这时候我一般推 Vue。尤其是 Vue 3 的组合式 API 出来后,写法更接近 React,但又不用配一堆工具链。直接一个 <script setup> 就能开干。
上次做个社区活动页,表单交互多,状态来回变。Vue 的响应式系统基本不用操心更新问题,改数据视图自动变。而且模板语法对新手友好,实习生第三天就能改功能。
性能方面,Vue 在中等规模项目里表现均衡。打包后体积比 React 轻一点,首屏加载快那么一丢丢。测试数据显示,同样功能下,Vue 的 TTI(可交互时间)平均快 80ms 左右,用户感知明显。
Angular:大项目里的老大哥
有次参与银行内部系统的重构,技术栈锁定 Angular。一开始觉得啰嗦,一个组件要写 .ts、.html、.css 还有 spec 文件,文件数量直接翻四倍。但项目跑到三个月后,发现它的好处来了——结构统一,新人接手不懵。
Angular 自带依赖注入、路由、状态管理,轮子都配齐了。虽然启动慢点,但运行时性能稳定。特别是用了 OnPush 检测策略后,复杂表格的刷新效率提升明显。
构建出来的包体积是大了些,但配合懒加载路由,首屏影响不大。适合那种长期维护、多人协作的企业级应用。
真实场景下的选择建议
如果你做的是营销页、活动页,追求快速上线,Vue 是最稳妥的选择。React 适合需要高度定制、有技术积累的团队。Angular 则更适合大型管理系统,尤其是国企、金融类项目。
别光看 benchmarks 的跑分,那些“每秒渲染多少节点”的数据和实际用户体验差得远。用户不会关心你用什么框架,他们只在乎页面点下去能不能马上出结果。
我自己现在接项目,先看团队配置。三个人以下,工期紧,直接 Vue;要是想搞设计系统或者跨平台方案,再考虑 React + TypeScript 那一套。Angular?除非客户明确要求,不然不会主动选。