2021 年大前端領(lǐng)域沒有出現(xiàn)革命性的明星項(xiàng)目,但在各個(gè)細(xì)分的技術(shù)領(lǐng)域都有一定的拓展與深耕,有很多新技術(shù)或者新特性有望在 2022 年迎來爆發(fā)。
在互聯(lián)網(wǎng) “寒冬” 的當(dāng)下,前端技術(shù)人員唯有修煉好內(nèi)功,不斷壯大自身,才能更好地迎接春天的 “東風(fēng)”。那前端技術(shù)人員應(yīng)該修煉哪一塊 “肌肉” 呢,或許我們可以在《2021 年 JavaScript 明星項(xiàng)目》找到一些答案:
-
zx 工具包僅用了 7 個(gè)月就榮登全年 Star 增長(zhǎng)最快的項(xiàng)目,這側(cè)面表明了前端開發(fā)在全棧的持續(xù)滲透和影響力。
-
在前端框架上面,龍頭 React 和 Vue 還是穩(wěn)步發(fā)展,持續(xù)創(chuàng)新。而黑馬 Svelte 在今年崛起,一舉超越 Angular 占據(jù)第三位,并對(duì)頭名虎視眈眈。那么 Svelte 能否破局?
-
在 Node.js 框架中,React 的 “元框架” Next.js 一騎絕塵。而新秀 Remix 僅僅 2 個(gè)月就沖到了第四,值得關(guān)注。
-
在構(gòu)建工具上面,對(duì)原生 ES 模塊的接納仍在繼續(xù),vite 勢(shì)頭難擋,另一方面,出于對(duì)性能的考慮,越來越多的前端工具開始用其他語(yǔ)言 (Rust、Go) 來構(gòu)建。
-
在桌面端,大火的 Tauri 打破了 Electron 的統(tǒng)治,基于 Rust (可替換),Tauri 對(duì)比 Electron 有更小的包大小和內(nèi)存占用,未來可期。
接下來,主要盤點(diǎn)下 2021 年前端行業(yè)發(fā)生了哪些重要的事情,同時(shí)分享下騰訊 IMWeb 團(tuán)隊(duì)在過去一年中都做了哪些工作。
總結(jié) 2021 年度趨勢(shì)
1、 TypeScript 穩(wěn)健增長(zhǎng)
從 Github 的語(yǔ)言使用數(shù)據(jù) (Top languages over the years)來看,2021 TypeScript 依然穩(wěn)居第四。
從最新的 2020 JS 問卷調(diào)查數(shù)據(jù)看,TypeScript 使用率在同類工具競(jìng)爭(zhēng)中依舊排名第一( State of JS survey)。
從 Stack Overflow Developer Survey 2021 來看,TypeScript 受大家喜愛程度依舊在提升,估計(jì)在 2022 年還會(huì)保持增長(zhǎng)。
回顧
回顧 2021,官方的 Roadmap 闡明了 TypeScript 的目標(biāo)是繼續(xù)完善其類型系統(tǒng)、實(shí)現(xiàn)強(qiáng)大的工具提高生產(chǎn)力、提高使用體驗(yàn)、提高社區(qū)參與程度、改進(jìn)基礎(chǔ)設(shè)施和工程化系統(tǒng)。提出目標(biāo)后,這一年 TypeScript 團(tuán)隊(duì)還是非常給力的發(fā)了 4 個(gè)版本,目前最新版本 4.5,其中許多新特性確實(shí)使用起來更香了,比如:
-
更好的元組類型支持,允許任意位置的剩余類型以及可選類型。
-
更好的模板字符串字面量類型支持。
-
更智能的條件分支域的類型推斷。
-
索引類型支持 Symbol 和模板字符串模式。
-
Awaited 類型和 Promise 類型改進(jìn)。
-
等等。
除了特性,它還完善了許多使用體驗(yàn),比如:
-
性能優(yōu)化如更快的類型生成、增量編譯和 Sourcemap 生成。
-
更智能的 IDE 補(bǔ)全。
-
非 Javascript 源文件定位。
-
等等。
另外, TypeScript 新官網(wǎng)在 8 月上線了,全新的文檔查閱起來也更加方便。
目前 TypeScript 已經(jīng)是 IMWeb 團(tuán)隊(duì)的標(biāo)配。無(wú)論是 Web 前端、Node.js 項(xiàng)目還是公共模塊,從腳手架模板就默認(rèn)支持 TypeScript,其中公共模塊體系不僅僅使用 TypeScript 編寫代碼和類型檢查,同時(shí)利用 ESLint 實(shí)現(xiàn) TS 語(yǔ)言標(biāo)準(zhǔn) AST 的特定校驗(yàn)來實(shí)現(xiàn)公共模塊規(guī)范,還結(jié)合 TypeDoc 生成使用文檔等等。
展望
TypeScript 在未來將提供