<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>

          前端月趨勢榜:3 月最流行的 20 個前端開源項目 - 0403

          共 7631字,需瀏覽 16分鐘

           ·

          2021-04-09 10:09


          大家好,我是你們的 貓哥,那個不喜歡吃魚、又不喜歡喵 的超級貓 ~

          相信很多人都沒有逛 GitHub 的習(xí)慣,因此總會有開源信息的不對稱,有哪些優(yōu)秀的前端開源項目值得學(xué)習(xí)的也不知道。

          從 2018 年開始,我就養(yǎng)成了每天逛 GitHub 的習(xí)慣,一般在早上上班前或者中午午休的時候都會逛一下。

          看看每天都開源了哪些好的前端項目,還有用到的主流前端技術(shù)棧又是哪些,值得我去學(xué)習(xí)的。

          GitHub 上面有個 Trending 榜 (趨勢榜),在 Trending 頁面,你可以看到最近一些熱門的開源項目或者開發(fā)者,這個頁面可以算是很多人主動獲取一些開源項目和活躍開發(fā)者最好的途徑。

          所以貓哥會在每周的周一給大家推薦一篇上周的 前端周趨勢榜的 10 大項目,每月給大家推薦一篇上個月的 前端月趨勢榜的 20 大項目,方便大家知道最近都開源了哪些好的前端項目,還有用到的主流前端技術(shù)棧又是哪些,以免錯過了好的開源項目。

          平時如何發(fā)現(xiàn)好的開源項目,可以看看這篇文章:GitHub 上能挖礦的神仙技巧 - 如何發(fā)現(xiàn)優(yōu)秀開源項目

          1. javascript-algorithms

          該倉庫包含了多種基于 JavaScript 的算法與數(shù)據(jù)結(jié)構(gòu)。

          每種算法和數(shù)據(jù)結(jié)構(gòu)都有自己的 README,包含相關(guān)說明和鏈接,以便進(jìn)一步閱讀 (還有 YouTube 視頻) 。

          數(shù)據(jù)結(jié)構(gòu)包含了 鏈表、雙向鏈表、隊列、棧、哈希表(散列)、堆、優(yōu)先隊列、字典樹、樹、優(yōu)先隊列、二叉查找樹、AVL 樹、紅黑樹、線段樹、樹狀數(shù)組、圖、并查集、布隆過濾器

          這項目還出了對應(yīng)的教學(xué)視頻,總共 81 個視頻講解,每個視頻大概 5 - 10分鐘左右,還能學(xué)習(xí)英語哦 ??

          youtube 的教學(xué)視頻:https://www.youtube.com/playlist?list=PLLXdhg_r2hKA7DPDsunoDZ-Z769jWn4R8

          貓哥之前學(xué)習(xí)算法的時候,也在這個項目中收益良多呢!

          而且這個項目還一直有維護(hù)和更新內(nèi)容哦!真的非常不錯的一個項目!

          https://github.com/trekhleb/javascript-algorithms

          更多算法相關(guān)的項目推薦可以看看這篇文章:7 個 GitHub 上超火的前端學(xué)習(xí)的數(shù)據(jù)結(jié)構(gòu)與算法項目

          2. Vite

          Vite,一個基于瀏覽器原生 ES imports 的開發(fā)服務(wù)器。

          利用瀏覽器去解析 imports,在服務(wù)器端按需編譯返回,完全跳過了打包這個概念,服務(wù)器隨起隨用。

          同時不僅有 Vue 文件支持,還搞定了熱更新,而且熱更新的速度不會隨著模塊增多而變慢。針對生產(chǎn)環(huán)境則可以把同一份代碼用 rollup 打。

          雖然現(xiàn)在還比較粗糙,但這個方向我覺得是有潛力的,做得好可以徹底解決改一行代碼等半天熱更新的問題。

          Vite 具有以下特點(diǎn):

          • 快速的冷啟動
          • 即時熱模塊更新(HMR,Hot Module Replacement)
          • 真正按需編譯

          https://github.com/vitejs/vite

          3. esbuild

          它是一個「JavaScript」Bundler 打包和壓縮工具,它可以將「JavaScript」和「TypeScript」代碼打包分發(fā)在網(wǎng)頁上運(yùn)行。

          esbuild 是一個用 Go 語言編寫的用于打包,壓縮 Javascript 代碼的工具庫。

          它最突出的特點(diǎn)就是打包速度極快 (extremely fast),下圖是 esbuild 跟 webpack, rollup, Parcel 等打包工具打包效率的一個 benchmark:

          https://github.com/evanw/esbuild

          4. vscode

          Visual Studio Code 是一個運(yùn)行于 OS X,Windows 和 Linux 之上的,針對于編寫現(xiàn)代 Web 和云應(yīng)用的跨平臺編輯器。

          也是當(dāng)今天前端最流行的編輯器!

          https://github.com/microsoft/vscode

          5. Awesome

          Awesome列出了各種有趣的話題。

          平臺類、編程語言、前端開發(fā)、后端開發(fā)、計算機(jī)科學(xué)、大數(shù)據(jù)、理論、圖書、編者、賭博、開發(fā)環(huán)境、娛樂、資料庫、媒體、學(xué)、安全、內(nèi)容管理系統(tǒng)、硬件、商業(yè)、工作、聯(lián)網(wǎng)、分散系統(tǒng)、高等教育、大事記、測驗(yàn)、各種各樣的。

          https://github.com/sindresorhus/awesome

          6. next.js

          這是一個用于 生產(chǎn)環(huán)境的 React 框架。

          Next.js 為您提供生產(chǎn)環(huán)境所需的所有功能以及最佳的開發(fā)體驗(yàn):包括靜態(tài)及服務(wù)器端融合渲染、 支持 TypeScript、智能化打包、 路由預(yù)取等功能 無需任何配置。

          https://github.com/vercel/next.js

          7. Front-End-Checklist

          該項目是詳盡的關(guān)于前端開發(fā)的清單,它列出了將 HTML 頁面投入生產(chǎn)之前需要進(jìn)行測試的所有元素。

          它基于眾多前端開發(fā)人員的多年經(jīng)驗(yàn),其中一部分整合自其他的開源清單。

          內(nèi)容包含:

          • Head
          • HTML
          • Webfonts
          • CSS
          • Images
          • JavaScript
          • Security
          • Performance
          • Accessibility
          • SEO

          https://github.com/thedaviddias/Front-End-Checklist

          8. React

          一個聲明性,高效且靈活的 JavaScript 庫,用于構(gòu)建用戶界面。

          聲明式

          React 使創(chuàng)建交互式 UI 變得輕而易舉。為你應(yīng)用的每一個狀態(tài)設(shè)計簡潔的視圖,當(dāng)數(shù)據(jù)改變時 React 能有效地更新并正確地渲染組件。

          以聲明式編寫 UI,可以讓你的代碼更加可靠,且方便調(diào)試。

          組件化

          創(chuàng)建擁有各自狀態(tài)的組件,再由這些組件構(gòu)成更加復(fù)雜的 UI。

          組件邏輯使用 JavaScript 編寫而非模板,因此你可以輕松地在應(yīng)用中傳遞數(shù)據(jù),并使得狀態(tài)與 DOM 分離。

          一次學(xué)習(xí),隨處編寫

          無論你現(xiàn)在正在使用什么技術(shù)棧,你都可以隨時引入 React 來開發(fā)新特性,而不需要重寫現(xiàn)有代碼。

          React 還可以使用 Node 進(jìn)行服務(wù)器渲染,或使用 React Native 開發(fā)原生移動應(yīng)用。

          https://github.com/facebook/react

          React 相關(guān)的項目可以看: 一個 React 技術(shù)揭秘的項目,自頂向下的 React 源碼分析。

          9. material-ui

          快速構(gòu)建漂亮的 React 應(yīng)用程序。

          Material-UI 是一個簡單且可自定義的組件庫,用于構(gòu)建更快,更美觀,更易于訪問的 React 應(yīng)用程序。遵循您自己的設(shè)計系統(tǒng),或從材料設(shè)計開始。

          https://github.com/mui-org/material-ui

          10. tailwindcss

          一個實(shí)用程序優(yōu)先的 CSS 框架,用于快速構(gòu)建自定義用戶界面。

          無需離開您的 HTML,即可快速建立現(xiàn)代網(wǎng)站。

          Tailwind CSS 是一個功能類優(yōu)先的 CSS 框架,它集成了諸如 flex, pt-4, text-center 和 rotate-90 這樣的的類,它們能直接在腳本標(biāo)記語言中組合起來,構(gòu)建出任何設(shè)計。

          https://github.com/tailwindlabs/tailwindcss

          11. edex-ui

          一個跨平臺,可定制的科幻小說終端模擬器,具有先進(jìn)的監(jiān)控和觸摸屏支持。

          它深受 DEX-UI 和 TRON Legacy 電影效果的啟發(fā),是一個類似于科幻電腦界面的全屏桌面應(yīng)用程序。

          提供了可視化動態(tài)監(jiān)測系統(tǒng)性能的圖表、資源列表、觸屏鍵盤等等,使其看起來非常高端大氣上檔次,另外還完美的支持終端操作,并且支持 Window、macOS、Linux 系統(tǒng)。

          作為從小就喜歡黑科技的貓哥來說,已經(jīng)按耐不住要裝 X 啦!

          詳情可以看看: 適用 Win、Mac、Linux,酷炫的極客界面 eDEX-UI

          https://github.com/GitSquared/edex-ui

          12. You-Dont-Know-JS

          該項目為 YDNJS(You Don’t Know JS) 圖書系列,包含一系列深入探討 JavaScript 語言核心機(jī)制的書籍。

          內(nèi)容大綱

          • 入門與進(jìn)階
          • 作用域與閉包
          • this 與對象原型
          • 類型與文法
          • 異步與性能
          • ES6 與未來

          https://github.com/getify/You-Dont-Know-JS

          13. 33-js-concepts

          JavaScript開發(fā)者應(yīng)懂的 33 個概念

          這個項目是為了幫助開發(fā)者掌握 JavaScript 概念而創(chuàng)立的。它不是必備,但在未來學(xué)習(xí)(JavaScript)中,可以作為一篇指南。

          目錄

          調(diào)用堆棧
          原始類型
          值類型和引用類型
          隱式, 顯式, 名義和鴨子類型
          == 與 ===, typeof 與 instanceof
          this, call, apply 和 bind
          函數(shù)作用域, 塊級作用域和詞法作用域
          閉包
          map, reduce, filter 等高階函數(shù)
          表達(dá)式和語句
          變量提升
          Promise
          立即執(zhí)行函數(shù), 模塊化, 命名空間
          遞歸
          算法
          數(shù)據(jù)結(jié)構(gòu)
          消息隊列和事件循環(huán)
          setTimeout, setInterval 和 requestAnimationFrame
          繼承, 多態(tài)和代碼復(fù)用
          按位操作符, 類數(shù)組對象和類型化數(shù)組
          DOM 樹和渲染過程
          new 與構(gòu)造函數(shù), instanceof 與實(shí)例
          原型繼承與原型鏈
          Object.create 和 Object.assign
          工廠函數(shù)和類
          設(shè)計模式
          Memoization
          純函數(shù), 函數(shù)副作用和狀態(tài)變化
          耗性能操作和時間復(fù)雜度
          JavaScript 引擎
          二進(jìn)制, 十進(jìn)制, 十六進(jìn)制, 科學(xué)記數(shù)法
          偏函數(shù), 柯里化, Compose 和 Pipe
          代碼整潔之道

          而且每個主題都包含了相關(guān)的精彩文章和視頻,非常適合學(xué)習(xí)。

          https://github.com/leonardomso/33-js-concepts

          14. three.js

          官網(wǎng)對 Threejs 的介紹非常簡單:“Javascript 3D library”。openGL 是一個跨平臺 3D/2D 的繪圖標(biāo)準(zhǔn),WebGL 則是 openGL 在瀏覽器上的一個實(shí)現(xiàn)。web 前端開發(fā)人員可以直接用 WebGL 接口進(jìn)行編程,但 WebGL 只是非?;A(chǔ)的繪圖 API,需要編程人員有很多的數(shù)學(xué)知識、繪圖知識才能完成 3D 編程任務(wù),而且代碼量巨大。Threejs 對 WebGL 進(jìn)行了封裝,讓前端開發(fā)人員在不需要掌握很多數(shù)學(xué)知識和繪圖知識的情況下,也能夠輕松進(jìn)行 web 3D 開發(fā),降低了門檻,同時大大提升了效率。

          https://github.com/mrdoob/three.js

          15. clean-code-javascript

          優(yōu)秀的 JS 代碼規(guī)范。

          比如:對相同類型的變量使用相同的關(guān)鍵字

          Bad:

          getUserInfo(); 
          getClientData(); 
          getCustomerRecord();

          Good:

          getUser();

          再比如:使用可搜索的命名

          在開發(fā)過程中,我們閱讀代碼的時間會遠(yuǎn)遠(yuǎn)超過編寫代碼的時間,因此保證代碼的可讀性與可搜索會非常重要。切記,沒事不要坑自己。

          Bad:

          //525600到底啥意思?
          for (var i = 0; i < 525600; i++) {
            runCronJob();
          }

          Good:

          // 聲明為全局變量
          var MINUTES_IN_A_YEAR = 525600;
          for (var i = 0; i < MINUTES_IN_A_YEAR; i++) {
            runCronJob();
          }

          https://github.com/ryanmcdermott/clean-code-javascript

          16. Vue.js

          Vue.js 是一個漸進(jìn)式 JavaScript 框架,也是目前前端最流行的框架。

          易用

          • 已經(jīng)會了 HTML、CSS、JavaScript?即刻閱讀指南開始構(gòu)建應(yīng)用!

          靈活

          • 不斷繁榮的生態(tài)系統(tǒng),可以在一個庫和一套完整框架之間自如伸縮。

          高效

          • 20kB min+gzip 運(yùn)行大小
          • 超快虛擬 DOM
          • 最省心的優(yōu)化

          https://github.com/vuejs/vue

          Vue 相關(guān)的項目可以看看:推薦 7 個 Vue2、Vue3 源碼解密分析的開源項目Vue3 的學(xué)習(xí)教程匯總、源碼解釋項目、支持的 UI 組件庫、優(yōu)質(zhì)實(shí)戰(zhàn)項目 ,你會找到 Vue 的學(xué)習(xí)寶藏庫。

          17. nodebestpractices

          Node.js 最佳實(shí)踐。

          這個項目是對 Node.js 最佳實(shí)踐中排名最高的內(nèi)容的總結(jié)和分享。

          這里是最大的匯集,且每周都在增長 - 當(dāng)前,超過 50 個最佳實(shí)現(xiàn),樣式指南,架構(gòu)建議已經(jīng)呈現(xiàn)。

          目錄

          • 項目結(jié)構(gòu)實(shí)踐 (5)
          • 異常處理實(shí)踐 (11)
          • 編碼規(guī)范實(shí)踐 (12)
          • 測試和總體質(zhì)量實(shí)踐 (8)
          • 進(jìn)入生產(chǎn)實(shí)踐 (16)
          • 新: 安全實(shí)踐(23)
          • Performance Practices (coming soon)

          比如 錯誤處理最佳實(shí)踐 中 使用 Async-Await 和 promises 用于異步錯誤處理

          TL;DR: 使用回調(diào)的方式處理異步錯誤可能是導(dǎo)致災(zāi)難的最快的方式(a.k.a the pyramid of doom)。對您的代碼來說,最好的禮物就是使用規(guī)范的 promise 庫或 async-await 來替代,這會使其像 try-catch 一樣更加簡潔,具有熟悉的代碼結(jié)構(gòu)。

          否則: Node.js 回調(diào)特性, function(err, response), 是導(dǎo)致不可維護(hù)代碼的一個必然的方式。究其原因,是由于混合了隨意的錯誤處理代碼,臃腫的內(nèi)嵌,蹩腳的代碼模式。

          https://github.com/goldbergyoni/nodebestpractices

          18. ant-design

          一套企業(yè)級 UI 設(shè)計語言和 React 組件庫。

          ? 特性

          • ?? 提煉自企業(yè)級中后臺產(chǎn)品的交互語言和視覺風(fēng)格。
          • ?? 開箱即用的高質(zhì)量 React 組件。
          • ?? 使用 TypeScript 開發(fā),提供完整的類型定義文件。
          • ?? 全鏈路開發(fā)和設(shè)計工具體系。
          • ?? 數(shù)十個國際化語言支持。
          • ?? 深入每個細(xì)節(jié)的主題定制能力。

          https://github.com/ant-design/ant-design

          19. next.js

          這是一個用于 生產(chǎn)環(huán)境的 React 框架。

          Next.js 為您提供生產(chǎn)環(huán)境所需的所有功能以及最佳的開發(fā)體驗(yàn):包括靜態(tài)及服務(wù)器端融合渲染、 支持 TypeScript、智能化打包、 路由預(yù)取等功能 無需任何配置。

          https://github.com/vercel/next.js

          20. strapi

          strapi 是一個先進(jìn)的 Node.js 內(nèi)容管理框架(headless-CMS),可以毫不費(fèi)力地構(gòu)建強(qiáng)大的 API 。

          功能特性

          • 現(xiàn)代化管理面板:優(yōu)雅、完全可定制、完全可擴(kuò)展的管理面板。

          • 默認(rèn)安全:可重用策略、CSRF、CORS、P3P、Xframe、XSS 等等。

          • 插件化:可在幾秒鐘內(nèi)安裝身份驗(yàn)證系統(tǒng)、內(nèi)容管理、自定義插件等等。

          • 極速:基于 Node.js,Strapi 表現(xiàn)驚人。

          • 前端不可知論者(Front-end Agnostic): 可使用任何前端框架(React、Vue、Angular等)、移動應(yīng)用,甚至是物聯(lián)網(wǎng)。

          • 強(qiáng)大的 CLI:腳手架項目和 API 不停機(jī)操作 。

          • SQL & NoSQL 數(shù)據(jù)庫:使用 Mongo 作為主數(shù)據(jù)庫,同時支持 Postgres、MySQL 等。

          https://github.com/strapi/strapi

          最后

          好了,3 月的前端月趨勢榜中最熱門的 20 大前端開源項目就是上面那些了。

          大家發(fā)現(xiàn)了沒有,上面的項目中的很多個,貓哥都已經(jīng)推薦過了的。

          這個世界發(fā)展的真相就是馬太效應(yīng),強(qiáng)者越強(qiáng),弱者越弱。

          開源項目也符合上面的規(guī)律,好的開源項目, Star 數(shù)會越來越多,會得到很多外力的推廣(比如貓哥的推薦),并且是呈現(xiàn)出指數(shù)型增長的。


          初級前端與高級前端之間,很大原因就是投入學(xué)習(xí)前端的時間、經(jīng)驗(yàn)的差別,其實(shí)就是信息差。

          如果有一個地方能又快又好的獲得這些優(yōu)質(zhì)的前端信息,那么將會大大縮短從初級到高級的時間。

          基于這個初衷,于是就誕生了 前端GitHub,能幫助前端開發(fā)人員節(jié)省時間的公眾號!

          前端GitHub 專注于挖掘 GitHub 上優(yōu)秀的前端開源項目,并以專題的形式推薦,每專題大概 10 個好項目,每周會有一到三篇精華文章推送。

          往期精文請看下方寶藏倉庫,請慎入!

          https://github.com/FrontEndGitHub/FrontEndGitHub

          微信搜 “前端GitHub”,回復(fù) “電子書” 即可以獲得下面 300 本技術(shù)精華書籍哦,貓哥 wx:CB834301747

          往期精文

          不知不覺,原創(chuàng)文章已經(jīng)寫到第 36 期了呢,幾乎每一篇都是貓哥精心挑選的優(yōu)質(zhì)開源項目,推送的每一篇文章里面的項目幾乎都是對前端開發(fā)很有幫助的。

          原創(chuàng)不易,一篇優(yōu)質(zhì)的文章都是要肝幾個晚上才能肝出來的,花費(fèi)很多時間、精力去篩選和寫推薦理由,大佬們看完文章后,順手來個一鍵三連吧,就當(dāng)給貓哥一點(diǎn)鼓勵吧。

          瀏覽 31
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  色婷婷综合在线视频 | 乱伦一级| 天堂a v在线播放 | 成人做爰www看视频软件 | 亚洲天堂视频在线播放 |