這一局,中國前端屬實領先世界了...
大家好,我卡頌。
讓我們回到4年前,17年國外前端圈都發(fā)生了哪些大事?
為了彌補web和原生應用體驗的差異,谷歌大力推進PWA
所有主流瀏覽器都支持WebAssembly
- Serverless開始流行
- CSS-in-JS走進主流前端視野
- TypeScript火爆
- GraphQL爆炸式增長
- ......
那么這一年,國內前端圈發(fā)生什么大事呢?第一批「微信小程序」上線。
WXML、WXSS這陌生又熟悉的名字讓前端工程師眉頭一緊。
之后,一票友商為了蹭微信熱點,紛紛上馬自家的小程序。但為了顯得與眾不同,又定義了各自的標準。
為了應對各家參差不齊的標準,出現(xiàn)了各種「小程序轉譯框架」,uniapp、taro、mpvue、wepy2、chameleon......
正應了「David Wheeler」的名言:
計算機科學中的所有問題都可以通過增加一個間接層來解決
經(jīng)過4年的發(fā)展,各種「小程序轉譯框架」做的有聲有色。而此時國外前端圈什么最火呢?
Svelte帶起的勢頭作為Stackoverflow票選的21年最受歡迎的web框架(包括前后端),Svelte最大的特點是「重編譯時」。
有多重呢?如果我們要開發(fā)一個「自定義組件」。
在React中,就正常用JSX開發(fā)就行,畢竟JSX是JS語法糖,很靈活。
在Vue中,一般組件用模版語法,如果組件太靈活,可以考慮寫render函數(shù)。
在Svelte中,為了hold住靈活的需求,官方文檔提供了「編譯時 API」,體驗類似Babel插件。
沒有經(jīng)歷過小程序時代的國外網(wǎng)友都認為他是web框架,畢竟他的編譯目標是DOM。
比如源碼里insert方法調用的是DOM API中的Node.insertBefore:
那如果編譯目標是其他前端框架呢......
推上一個小哥嘗試將Svelte組件編譯為Preact組件。
評論區(qū)一堆國外網(wǎng)友表示:我不懂你為啥這么做,但我大受震撼。
小了,格局小了......
如果把Vue、React等一眾前端框架當作各種「小程序框架」,那Svelte就是「小程序轉譯框架」。
Svelte邪魅狂狷的一笑:“想不到吧,我只是想做在座各位的爸爸”。
殊不知早在4年前,遙遠的東方有個男子,早已洞悉了一切......