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