<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          完了,又火一個 。。。

          共 2355字,需瀏覽 5分鐘

           ·

          2021-07-07 23:08

          又一個前端超新星項目?

          大家好,我是魚皮。

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

          就是這個名為 solid 的項目:

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

          啥是 Solid?

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

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

          項目 Star 增長曲線

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

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

          描述

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

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

          來看看官網給的示例代碼:

          Solid 語法

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

          性能

          但是,這些并不能幫助 Solid 框架脫穎而出,真正牛逼的一點是它 非常快

          有多快呢?第一夠不夠 !

          JS 框架性能測試對比

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

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

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

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

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

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

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

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

          <div>{aaa}</div>

          經 Svelte 編譯后的代碼:

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

          經 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)建,從而進一步提升了性能。

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

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



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

          不禁感嘆道:唉,技術發(fā)展太快了,一輩子學不完啊!(不過前端初學者不用關心那么多,老老實實學基礎三件套 + Vue / React 就行了)

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

          往期推薦

          入職一年了?

          程序員都想,卻不敢做的事?我來!

          魚皮出教材了!

          瀏覽 51
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  真实夫妻操逼视频 | 国产亚洲视频在线 | 欧美suv无码 | 五月天亚洲综合 | 日韩最新高清无码 |