為什么越來越多人“拋棄”JavaScript 框架
如果一個(gè)待辦清單也要打包 400 KB 的 JavaScript 才能渲染——此刻或許值得停下來想一想。
過去一年,JavaScript 社區(qū)里悄然興起了一場“靜悄悄的反叛”。不喧嘩、不張揚(yáng),卻持續(xù)擴(kuò)散——而且高效致命。 一個(gè)直截了當(dāng)?shù)膯栴}被頻繁提出:能否在不下發(fā)龐大前端包的前提下,構(gòu)建現(xiàn)代 Web 應(yīng)用?
答案指向同一方向:零打包(zero-bundle) 思路。
“零打包”并非筆誤,而是一種范式
并不是笑話,而是思維重置:與其把瀏覽器當(dāng)成“框架的豪華運(yùn)行時(shí)”,不如讓服務(wù)器重新坐回駕駛位。 一批工具正沖鋒在前(按字母序):
- HTMX:僅用 HTML 屬性“點(diǎn)綴”動(dòng)態(tài)行為;無需構(gòu)建工具、無需 hydration。
- Qwik:提出 Resumability(可續(xù)執(zhí)行):JavaScript 可以從服務(wù)器停下處繼續(xù)執(zhí)行,幾乎沒有 hydration 懲罰。
- Marko(eBay 團(tuán)隊(duì)):全量流式 HTML + 交互小島(islands),只在必要時(shí)按需激活。
這些方案把重點(diǎn)落在首屏啟動(dòng)快、JS 負(fù)載輕、真實(shí)場景性能——而非唯 Lighthouse 分?jǐn)?shù)論。 因此、在冷啟動(dòng)敏感、網(wǎng)絡(luò)受限、設(shè)備性能參差的現(xiàn)實(shí)里,它們更像“回歸常識(shí)”的技術(shù)。
現(xiàn)有主流框架出了什么問題?
嚴(yán)格說,問題不在框架本身——直到低端設(shè)備上的 TTI(可交互時(shí)間) 被認(rèn)真度量。React / Vue / Svelte 等在包下載、解析、hydration 完成之后表現(xiàn)出色; 然而,在此之前?用戶面對的是一張“凍結(jié)”的頁面。 于是,一個(gè)“模型翻轉(zhuǎn)”的思路浮現(xiàn):服務(wù)器優(yōu)先渲染(server-first)。
- 服務(wù)器直接下發(fā)可用的 HTML;
- 交互稍后到達(dá),且只在需要之處加載。
這里并非“去 JS 化”。核心是:不要為了一份本可由 HTML 承擔(dān)的靜態(tài)結(jié)構(gòu),提前發(fā)送 90% 無關(guān)的 JS——更別在客戶端再把相同的 HTML“重渲染一次”。 因此、就加載路徑、就可靠性、就功耗而言,減法往往勝過盲目的加法;與此同時(shí),復(fù)雜交互仍可按需注入;盡管如此,初次可用的速度被顯著改善。
為什么偏偏是現(xiàn)在
多股趨勢在 2025 年疊加,使“零 JS 首屏/零打包”成為可行選項(xiàng):
- 瀏覽器 DOM 更新已非常快——多數(shù)情況下快過通用前端框架抽象層。
- 移動(dòng)端與低帶寬用戶仍占比不小——性能“木桶效應(yīng)”更明顯。
- 邊緣節(jié)點(diǎn)與無服務(wù)器基礎(chǔ)設(shè)施普及——?jiǎng)討B(tài) HTML 的延遲與吞吐兼得。
- 工程疲勞積累——七層嵌套的構(gòu)建配置令人厭倦;維護(hù)成本被放大。
- 用戶只在乎“快”——至于用沒用某框架,用戶并不關(guān)心。
因此、以用戶感知為錨點(diǎn)的技術(shù)決策被重新重視;同時(shí),以平臺(tái)能力為基礎(chǔ)的“回歸服務(wù)器”路徑變得順理成章;盡管如此,客戶端富交互仍有其不可替代的價(jià)值。
“React 已死”嗎?
結(jié)論是否定的,但“唯一答案”的時(shí)代已結(jié)束。 React 依舊擅長重交互界面:數(shù)據(jù)密集的儀表盤、設(shè)計(jì)類工具、媒體應(yīng)用等。 然而,對于內(nèi)容優(yōu)先的體驗(yàn)(電商列表、博客、表單、商品詳情等),更少的 JS已經(jīng)成為競爭優(yōu)勢。 因此、技術(shù)選型進(jìn)入“按需擇器”階段: 不再因?yàn)椤巴卸荚谧?SPA”就盲目跟隨;與此同時(shí),框架生態(tài)與團(tuán)隊(duì)熟練度仍要計(jì)入成本;盡管如此,性能與可達(dá)性在許多業(yè)務(wù)里正在回到核心。
面向 2025 年的前端工程建議
- 認(rèn)識(shí) HTMX:范式簡單、上手清爽。
- 探索 Qwik:前沿理念有望反哺未來框架設(shè)計(jì)。
- 嘗試 Marko:在復(fù)雜站點(diǎn)里,對“何時(shí)加載、加載多少”有精細(xì)掌控。
- 重新評估 React 的必要性:并非處處皆需 SPA。
因此、以“更少即更多”為原則重新審視頁面架構(gòu);與此同時(shí),漸進(jìn)增強(qiáng)與可訪問性將自然受益;盡管如此,團(tuán)隊(duì)需要建立“按場景拆分棧”的共識(shí)與標(biāo)準(zhǔn)。
歸納:更快、更輕、更聰明
- 范式:服務(wù)器優(yōu)先,客戶端按需;
- 目標(biāo):首屏可用先行,交互延后補(bǔ)齊;
- 方法:HTML 為底,零打包/低打包為軸,Resumability / 流式 / Islands 為翼。
若認(rèn)同這條路徑,傳播、討論、實(shí)踐皆能推動(dòng)生態(tài)演進(jìn)——帶來更快的站點(diǎn)、更低的能耗、更高的覆蓋。 于是,所謂“拋棄框架”,并非否定框架價(jià)值,而是拒絕為不相稱的負(fù)載買單;與此同時(shí),選對工具即是選對成本曲線;因此,少即是多,此刻正當(dāng)其時(shí)。




























