最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

完了,又火一個項目

2021-07-10 14:14 作者:程序員魚皮  | 我要投稿

又一個前端超新星項目 ?

大家好,我是魚皮。

今天逛 GitHub 的時候,在趨勢榜上看到一個項目,竟然短短一天的時間內(nèi),漲了 1000 多個星星!

就是這個名為 solid 的項目:

要知道日增上千 star 可是非常難得的,我不禁感到好奇,點進去看看這個項目到底有啥牛逼的?

啥是 Solid?

這是一個國外的前端項目,截止到發(fā)文前,已經(jīng)收獲了 8400 個 star。

我總覺得這個項目很眼熟,好像之前也看到過,于是去 Star History 上搜了一下這個項目的 star 增長歷史。好家伙,這幾天的增速曲線幾乎接近垂直,已經(jīng)連續(xù)好幾天增長近千了!

項目 Star 增長曲線

看到這個曲線,我想起來了,solid 是一個 JavaScript 框架,此前在一次 JavaScript 框架的性能測試中看到過它。

要知道,現(xiàn)在的 JavaScript 開發(fā)框架基本就是 React、Vue、Angular 三分天下,還有就是新興的 Svelte 框架潛力無限(近 5w star),其他框架想分蛋糕還是很難的。那么 Solid 到底有什么本事,能讓他連續(xù)幾天 star 數(shù)暴漲呢?

描述

打開官網(wǎng),官方對 Solid 的描述是:一個用于構(gòu)建用戶界面的 聲明性 JavaScript 庫,特點是高效靈活。

順著官網(wǎng)往下看,Solid 有很多特點,比如壓縮后的代碼體積只有 6 kb;而且天然支持 TypeScript 以及 React 框架中經(jīng)常編寫的 ?JSX(JavaScript XML)。

來看看官網(wǎng)給的示例代碼:

Solid 語法

怎么樣,他的語法是不是和 React 神似?

性能

但是,這些并不能幫助 Solid 框架脫穎而出,真正牛逼的一點是它 非???/strong> 。

有多快呢?第一夠不夠 !

JS 框架性能測試對比

有同學(xué)說了,你這不睜著眼睛說瞎話么?Solid 明明是第二,第一是 Vanilla 好吧!

哈哈,但事實上,Vanilla 其實就是不使用任何框架的純粹的原生 JavaScript,通常作為一個性能比較的基準(zhǔn)。

那么 Solid 為什么能做到這么快呢?甚至超越了我們引以為神的 Vue 和 React。

這是因為 Solid 沒有采用其他主流前端框架中的 Virtual DOM,而是直接被靜態(tài)編譯為真實的原生 DOM 節(jié)點,并且將更新控制在細(xì)粒度的局部范圍內(nèi)。從而讓 runtime(運行時)更加輕小,也不需要所謂的臟檢查和摘要循環(huán)帶來的額外消耗,使得性能和原生 JavaScript 幾乎無異。換句話說,編譯后的 Solid 其實就是 JavaScript!

其實 Solid 的原理和新興框架 Svelte 的原理非常類似,都是編譯成原生 DOM,但為啥他更快一點呢?

為了搞清楚這個問題,我打開了百度來搜這玩意,但發(fā)現(xiàn)在國內(nèi)根本搜不到幾條和 Solid.js 有關(guān)的內(nèi)容,基本全是一些亂七八糟的東西。后來還是在 Google 上搜索,才找到了答案,結(jié)果答案竟然還是來自于某乎的大神伊撒爾。。。

要搞清楚為什么 Solid 比 Svelte 更快,就要看看同一段代碼經(jīng)過它們編譯后,有什么區(qū)別。

大神很貼心地舉了個例子,比如這句代碼:

<div>{aaa}</div>

經(jīng) Svelte 編譯后的代碼:

let?a1,?a2
a1?=?document.creatElement('div')
a2?=?docment.createTextNode('')
a2.nodeValue?=?ctx[0]?//?aaa
a1.appendChild(a2)

經(jīng) Solid 編譯后的代碼:

let?a1,?a2
let?fragment?=?document.createElement('template')
fragment.innerHTML?=?`<div>aaa</div>`
a1?=?fragment.firstChild
a2?=?a1.fristChild
a2.nodeValue?=?data.aaa

可以看到,在創(chuàng)建 DOM 節(jié)點時,原來 Solid 耍了一點小把戲,利用了 innerHTML 代替 createElement 來創(chuàng)建,從而進一步提升了性能。

當(dāng)然,拋去 Virtual DOM 不意味著就是 “銀彈” 了,畢竟十年前各種框架出現(xiàn)前大家也都是寫原生 JavaScript,輕 runtime 也有缺點,這里就不展開說了。

除了快之外,Solid 還有一些其他的特點,比如語法精簡、WebComponent 友好(可自定義元素)等。

總的來說, 我個人還是非常看好這項技術(shù)的,日后說不定能和 Svelte 一起動搖一下三巨頭的地位,給大家更多的選擇呢?這也是技術(shù)選型好玩的地方,沒有絕對最好的技術(shù),只有最適合的技術(shù)。

不禁感嘆道:唉,技術(shù)發(fā)展太快了,一輩子學(xué)不完?。。ú贿^前端初學(xué)者不用關(guān)心那么多,老老實實學(xué)基礎(chǔ)三件套 + Vue / React 就行了)

最后再送大家一些 幫助我拿到大廠 offer 的學(xué)習(xí)資源,高達 6 T!

跑了,留下 6T 的資源!(https://t.1yb.co/qOJG)

我是如何通過自學(xué),拿到騰訊、字節(jié)等大廠 offer 的,可以看這篇文章,不再迷茫!

我學(xué)計算機的四年,共勉!(https://t.1yb.co/q0mS)

我是魚皮,點贊 還是要求一下的,祝大家都能心想事成、發(fā)大財、行大運。


完了,又火一個項目的評論 (共 條)

分享到微博請遵守國家法律
信丰县| 德保县| 孟连| 静安区| 恩平市| 冀州市| 外汇| 高尔夫| 刚察县| 平遥县| 芷江| 务川| 宁晋县| 古浪县| 鄂温| 白沙| 渭源县| 和硕县| 旅游| 象州县| 勃利县| 泗阳县| 来安县| 德兴市| 德化县| 塔河县| 瑞金市| 盱眙县| 额尔古纳市| 石门县| 大同县| 蒙山县| 阳高县| 芮城县| 闵行区| 开封市| 湄潭县| 昌黎县| 分宜县| 武安市| 宁海县|