最近,字節(jié)跳動技術團隊公布了一份關于 2022 年前端技術的發(fā)展趨勢預測,總結了新的一年前端技術可能產(chǎn)生的6個變化,讓我們一起來借鑒參考一下吧。
2014 年 10 月 28 日,W3C 正式發(fā)布 HTML5.0 推薦標準讓前端技術蓬勃發(fā)展。雖然?HTML6.0?目前處于提案階段,但是社區(qū)已經(jīng)開始有了一些零星的討論,所以可能它離我們并不太遠。2022 年,可能 HTML6 并不會推出,但是可能會有更多利于用戶體驗的提案出現(xiàn)。Facebook 改名 Meta 后,元宇宙話題很火熱,但突然一夜之間,討論似乎又從元宇宙過渡到了 Web3.0。Web1.0到2.0的轉變,極大地改變了前端技術,Web3.0時代,可能是去中心化,可能是物聯(lián)網(wǎng),可能是人工智能,值得每個前端開發(fā)去關注。
在 StackOverflow 的“最受歡迎的 Web 框架”調(diào)查中,除去 SSR 渲染框架和 jQuery,上榜的前端框架共有 5 個:React,Vue,Angular 依然是強勢鐵三角向前發(fā)展。在 2022 年 Vue3 會成為 Vue 的默認版本,React 18 也會發(fā)布正式版本,從目前社區(qū)關注度來看, Vue3 源碼 Github star 27k+, React 18 WG Github star 3.9k+,且在 npm 的下載量上,新版本下載數(shù)目都比較可觀,所以很有可能今年嘗試和使用的人會變得更多。打包器大概可以分為傳統(tǒng)編譯和ESM 混合編譯,而由于 ESM 混合編譯類打包器依賴于其他打包器,所以理論上 NPM 下載量永遠不可能超過其依賴。同時 ESM 混合編譯今年整體表現(xiàn)平平。由于模塊化 CSS、搖樹、MVVM 的流行,UI 框架的選擇其實沒有那么舉足輕重了,針對自己選用的框架選擇一個符合項目風格的 UI 即可。預計今年也不會有黑馬闖入和變動。2021 年開年以來,低代碼行業(yè)被不斷關注,也引發(fā)了眾多企業(yè)的熱議與調(diào)研。低代碼發(fā)展初期,廠商的類型多樣化,傳統(tǒng)軟件廠商、互聯(lián)網(wǎng)大廠均涉及低代碼領域,通用型廠商相對垂直型廠商應用場景更加廣泛,因此廠商數(shù)量更多。但隨著市場成熟,通用類型廠商競爭加劇,垂直型廠商在細分的領域?qū)尸F(xiàn)優(yōu)勢明顯趨勢,可以進一步挖掘用戶場景,提升產(chǎn)品能力和用戶滿意度。及早布局低代碼產(chǎn)業(yè)生態(tài),多維度拓展廠商優(yōu)勢,才能在未來占據(jù)高地。人工智能作為跨時代技術在各個領域大放異彩,近些年 AI 能力在前端領域的嘗試與應用帶來新一輪的技術革命。阿里的 imgcook 可以通過識別設計稿(Sketch / PSD /圖片)智能生成 React、Vue、Flutter、小程序等不同種類的代碼,并在同年雙 11 大促中自動生成了 79.34% 的前端代碼,智能生成代碼不再只是一個線下實驗產(chǎn)品,而是真正產(chǎn)生了價值。2022 年隨著低代碼和圖形化技術的逐步完善,二者會相互完善和成就彼此。使用者通過 AI 實現(xiàn)頁面的還原然后再通過低代碼平臺對頁面進行調(diào)整,整個過程基本上不寫什么代碼就可以完成整個頁面的搭建,搭建頁面真的會變得特別簡單。隨著從 PC 時代向移動互聯(lián)網(wǎng)時代演進,原生客戶端因為自身天花板的原因也在逐漸向跨平臺方案傾斜,當然這得益于跨平臺方案的明顯優(yōu)勢。對于開發(fā)者而言,可以做到一次開發(fā)多端復用,這在很大程度上能夠降低研發(fā)成本,提高產(chǎn)品效能。但是,移動端的跨平臺技術并不是僅僅考慮一套代碼能夠運行在不同場景即可,還需要解決性能、動態(tài)性、研發(fā)效率以及一致性的問題。React Native 是以 Web 技術開發(fā)原生應用的典型框架。但是與眾多基于 html 的跨平臺框架相比,F(xiàn)lutter 絕對是體驗最好,性能與構建思路幾乎最接近原生開發(fā)的框架。?Flutter 目前雖然有著跨端最好的性能和體驗但是關注人數(shù)和 React Native 不相上下。React Native 由于先出優(yōu)勢加上 React 的影響力導致目前很多 APP 都已經(jīng)進入存量階段,少有新的 APP 出現(xiàn),所以在沒有足夠的收益情況下,大部分 APP 是不會進行技術變更的。所以在 2022 年,如果兩者都無重大的技術變更,除了對 Flutter 關注的人會逐漸變多,兩者大概不會有什么比較大的轉變。目前主流小程序平臺有 10 多家,包括騰訊的微信小程序、QQ 小程序;阿里的支付寶小程序、淘寶輕店鋪;字節(jié)跳動的頭條小程序、抖音小程序;百度小程序等;不同平臺的實現(xiàn)標準各不相同,開發(fā)者需要學習不同平臺的開發(fā)規(guī)范做定制化開發(fā)。所以在 2019 年 9 月 12 日阿里巴巴主導發(fā)起并聯(lián)合 W3C 中國及國內(nèi)外廠商起草了 MiniApp 標準化白皮書(MiniApp Standardization White Paper),旨在制定共同標準減少平臺差異,并成立了相關工作組。截至目前產(chǎn)出了 lifecycle,manifest,packaging 等幾篇文檔,但從目前來看各平臺對這些標準的實現(xiàn)度還很低,并未實現(xiàn)統(tǒng)一,所以這么來看標準化的路看著還很長。在當下要解決跨平臺開發(fā)問題可以采用框架轉換。隨著一些跨端框架(Uniapp、Taro)的出現(xiàn)部分跨端轉換器基本已不再維護,這邊僅作補充。我們接下來了解一些跨端轉換器相關的內(nèi)容:wept: 微信小程序?qū)崟r運行工具,目前支持 Web、iOS 兩端的運行環(huán)境;
hera-cli: 用小程序方式來寫跨平臺應用的開發(fā)框架,可以打包成 Android 、 iOS 應用,以及 H5;
weweb-cli: 兼容小程序語法的前端框架,可以用小程序的寫法,來寫 web 應用
跨端這項技術并非為了完全替代原生開發(fā),針對每個場景我們都可以用原生寫出性能最佳的代碼。但是這樣做工作量太大,實際項目開發(fā)中需要掌握效率與優(yōu)化之間的平衡,跨端的使用場景并不一定是項目級別的,可以是業(yè)務級甚至是頁面級的。跨端的優(yōu)勢在于能讓我們在書寫更有效率的代碼、擁有更豐富的生態(tài)的同時,還帶來了不錯的性能。“前端開發(fā)”的發(fā)展歷史像是一直在找尋自己的定位;從切圖仔、寫 HTML 模板的“石器時代”,到前后端分離、大前端的“工業(yè)時代”,再到現(xiàn)在跨端技術、低代碼的“電氣時代”。前端研發(fā)的職責一直在改變,同時前端研發(fā)需要掌握的技術也在迭代更新。對比傳統(tǒng)的服務器托管方式,使用 serverless 架構開發(fā),開發(fā)者無需多關注可用性、擴縮容、監(jiān)控告警以及安全漏洞等等問題,只需要負責 Faas 層的代碼來處理業(yè)務邏輯即可。“全棧開發(fā)者”是指“同時掌握前端、后端以及其他網(wǎng)站開發(fā)相關技能的開發(fā)者”。全棧開發(fā)者能夠勝任產(chǎn)品開發(fā)的全流程,從前端到后端,從架構設計到代碼落地,從自動化測試到運維等。對于公司來說,全棧工程師可以減小公司的用人成本,減少項目溝通成本;對于個人來說,擁有全鏈路技術有益于技術的閉環(huán),擴展全局思維,提升個人能力和價值。DevOps(Development 和 Operations 的組合詞)是一種重視“軟件開發(fā)人員(Dev)”和“IT 運維技術人員(OPS)”之間溝通合作的文化、運動或慣例。透過自動化“軟件交付”和“架構變更”的流程,來使得構建、測試、發(fā)布軟件能夠更加地快捷、頻繁和可靠??梢园?DevOps 理解為一個過程、方法與系統(tǒng)的總稱。5G 的到來對于技術研發(fā)工作者的我們而言意味深遠。它的出現(xiàn)是數(shù)據(jù)傳輸速度、響應速度和連接性的一次巨大飛躍。5G 將與超高清視頻、VR、AR、消費級云計算、智能家居、智慧城市、車聯(lián)網(wǎng)、物聯(lián)網(wǎng)、智能制造等產(chǎn)生深度融合,這些都將為前端技術的發(fā)展帶來新的增長和機遇。元宇宙概念火爆全球,目前的 WebAR 和 WebVR 技術距離實現(xiàn)元宇宙的愿景似乎還很遙遠,但借助于以 URL 的格式進行傳播的優(yōu)勢,通過社交媒體分享形式進行推廣,WebAR 和 WebVR 無疑是用戶接觸到元宇宙門檻的最便捷的方式,不需要購買昂貴的 VR 設備,不需要安裝 APP,通過手機網(wǎng)頁就可以進行體驗。在 5G 技術逐漸普及的當今,現(xiàn)有的一些體驗問題,例如:3D 模型體積較大,初次資源加載耗時長之類的問題也能夠得到一些緩解。前端人在這塊能夠做些什么?從技術上來講,需要我們通過機器學習算法,實時地將虛擬圖像覆蓋到用戶屏幕,并且和真實世界中的位置進行對齊,結合 WebRTC 技術實現(xiàn)網(wǎng)頁瀏覽器實時獲取和展示視頻流,再利用 WebGL 的能力,進行 3D 人物模型加載,渲染和播放動畫。隨著 5G 技術發(fā)展,視頻加載速度會非??欤唵蔚膶崟r渲染會被視頻直接替代。復雜的可以通過服務器渲染,將畫面?zhèn)骰鼐W(wǎng)頁中,只要傳輸夠快,手機的性能就不再是問題。降低 web 3D 研發(fā)成本應該是將來的一個重要發(fā)展路線,隨著技術門檻的降低,會吸引更多感興趣的人加入促使其正向發(fā)展。所以 Web 3D 可能會朝著平臺化的方向發(fā)展,能提供簡單高效的工具將成為核心競爭力。WebRTC ( Web Real-Time Communications )WebRTC 是一項實時通訊技術,它為前端打開了信息傳遞的新世界大門,對于絕大多數(shù)前端開發(fā)者來說,對于信息的傳遞還局限于 XMLHttpRequest,升級到全雙工大家會用到 WebSocket ,對于能力閉塞的前端來說,WebRTC 無疑是打破了前端“楚門的世界”。