还记得当初选框架就像加入某场“圣战”吗?React 派嘲讽 Angular “臃肿”,Vue 支持者自诩折中之选,JSX 是天才发明还是罪恶源头吵得难解难分。
如今,剧情反转:这些框架竟然风格越来越相似。
过去几年,我亲眼见证了它们的不断趋同。曾经各执一词的多种开发思路,如今相互借鉴之深,让人时常分不清自己到底在用哪个框架。
1. 状态管理的大迁徙:信号(Signals)
最大的“出轨证据”莫过于信号。
三年前若有人说 Angular 会拥抱 SolidJS 那套响应模型,我定会笑出声。但到了 2025 年,信号已经在多款主流框架里占据一席之地:
**Angular 16+**:内置细粒度信号响应
Svelte 5:底层用信号实现响应,但对开发者透明
SolidJS:信号之始祖
Preact:信号为首选状态管理
Qwik:从诞生之初即拥抱信号
Lit 3:Google 的 Web Component 框架,正式引入信号
就连 Vue 虽未明称“信号”,其底层原理亦与之异曲同工。React 目前仍是“例外”,但压力山大不言而喻。
为何信号称王?
它直击无谓重渲染的痛点。传统 React 模式是:状态改动就重跑整个组件树;信号则精确追踪数据依赖,只更新真正需要刷新的那一小部分。
// 旧模式(React)
function App() {
const [count, setCount] = useState(0);
return (
<div>
<p>{count}</p>
<HeavyThing /> {/* 也会被一起重渲染 */}
<button onClick={() => setCount(c => c + 1)}>+</button>
</div>