有哪些值得學習的大型 React 開源項目?

大家好,我是若川。持續組織了近一年的源碼共讀活動,感興趣的可以?加我微信?ruochuan12?參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》?包含20余篇源碼文章。歷史面試系列。另外:目前建有江西|湖南|湖北籍前端群,可加我微信進群。

之前有很多小伙伴問過我,通過文檔或者視頻學習 React ?已經有一段時間了,想學習一些好的開源項目來獲得一些實戰經驗。我之前也沒有很好的答案,確實很難找,因為一般企業級應用都是不開源的,Github 上大部分都是很簡單的 DEMO 項目,很難挑選。

今天就給大家梳理了幾個我覺得還不錯的 React 開源項目。

Jira Clone

4840d52d121a8b1088e9116d0dfe17c9.png
  • 倉庫:https://github.com/oldboyxx/jira_clone

  • Github Star:8.6K

這是一個基于 React 開發的模仿 Jira 的項目,前端全部使用 React Hooks 實現 。另外還有一些其他亮點:

  • 后端是基于 TypeScriptTypeORM,和 Postgres 進行通信

  • 在前端使用自定義 Webpack 配置

  • 基于 Cypress 進行端到端測試

作者還使用 styled-components 和全局樣式進行混合開發,使他看起來和 Jira 非常像。

RealWorld aka Conduit

73e85834f1cabe7a5069cb5e7a129c01.png
  • 倉庫:https://github.com/gothinkster/react-redux-realworld-example-app

  • Github Star:5.3K

  • 預覽:https://react-redux.realworld.io/

ThinksterRealWorld 以超過 24 種不同的語言和框架重新實現了一個相同的應用程序(一個名為 Conduit 的仿 Medium.com 程序),這是它的 React/Redux 版本。

它基于 create-react-app 創建,用 react-router 實現路由,用 Redux 實現狀態管理,基于 classNames 編寫樣式,基于 superagent 請求遠程數據。

Real World App

125086e441b1451195c1bc66ee83fef1.png
  • 倉庫:https://github.com/cypress-io/cypress-realworld-app

  • Github Star:3.7K

Real World App 是使用 Cypress 對程序進行端到端測試的一個很好的 DEMO 項目。在 repo 中包含了示例數據,自動化測試和應用程序都可以開箱即用地運行。

它基于 create-react-app 構建,使用 TypeScript 編寫,帶有 Express 后端,使用 Material UI 作為 UI/組件庫,使用 Formik 實現表單,使用 react-router 實現路由。

HospitalRun

53714c4e2f47909429629f69f193e649.png
  • 倉庫:https://github.com/HospitalRun/hospitalrun-frontend

  • Github Star:6.5K

HospitalRun 是一個成熟的電子健康記錄系統 (EHR) 和醫院信息系統 (HIS) ?Web 應用。它是一個非常完整的 OSS 解決方案。使用 TypeScript + React 編寫,并使用 SCSS 編寫樣式。大多數組件都存在于 components 包中。

Simorgh

aec21c0614fda36143f1f4c1e39e68d1.png
  • 倉庫:https://github.com/bbc/simorgh

  • Github Star:751

  • 預覽:https://astexplorer.net/

SimorghBBC(沒錯,就是那個天天抹黑中國的新聞網站) 的 React SPA,目前為全球數百萬生產用戶提供服務。它正在逐步推廣到每個 BBC World Service News 網站。

它使用 PropTypes 進行類型檢查,使用 JestEnzyme 進行單元測試(覆蓋率已經達到 98% ),使用 Cypress 進行端到端測試,使用 styled-components 編寫樣式,使用 Express 處理服務端渲染。

AST Explorer

1aa4d61144a2740cfb8d788a2ea8ce2a.png
  • 倉庫:https://github.com/fkling/astexplorer

  • Github Star:4.8K

AST Explorer 是一個在線生成抽象語法樹的工具。

作為一個 React 項目很值得一試,因為它是持續開發很多年項目的一個很好的例子。使用 PropTypes 進行類型檢查,使用 Redux 進行狀態管理。

雖然你不會在這里找到像 TypeScript/Flow 這樣的花哨的東西,但它的代碼注釋很完善,也很清楚地指出了很多編碼技巧。另外,它們也逐步在將類組件遷移到 Hooks 上。

Excalidraw

db6c233a48cbde01f8fb229b46a88a96.png
  • 倉庫:https://github.com/excalidraw/excalidraw/

  • Github Star:31.2K

Excalidraw 是一個在線圖形繪制工具(手繪風格),我一直在用。

它使用 TypeScript + React Hooks 編寫,使用 SCSS 進行樣式處理。

Spectrum

724371d14f209e985ddc3f7f246b8137.png
  • 倉庫:https://github.com/withspectrum/spectrum

  • Github Star:10.6K

Spectrum 是一個社區網站,它的目標是將實時聊天應用程序的功能和論壇的功能結合起來。它自從 2017 年初以來一直在積極開發中,并于 2018 年底被 GitHub 收購。

Spectrum 在早期是非常有趣的,因為它使用 RethinkDB 實時更新查詢、服務器渲染和 GraphQL(在當時看來都是非常先進的技術)。

代碼庫使用 Flow 進行類型檢查,使用 Apollo (GraphQL) 進行數據獲取,使用 Redux 進行狀態管理,使用 Express 服務器進行服務器渲染,并編寫了大量的自定義 React Hooks

Sentry

fc255a1877e2bcf138b92f4131549c93.png
  • 倉庫:https://github.com/getsentry/sentry

  • Github Star:31.5K

Sentry 是一個開源的前端異常監控工具。后端基于 Django 實現,前端基于 TypeScript + React 實現,使用 Emotion 進行樣式管理,基于 react-router 實現路由,使用 Redux 進行狀態管理。

Grafana

63a2b93949bb17f9e0374f21ccae598a.png
  • 倉庫:https://github.com/grafana/grafana

  • Github Star:50.2K

它是一個正在從 AngularJS 遷移到 React 的項目,基于 TypeScript 編寫,用 Redux 進行狀態管理。

GoAlert

45a6346e1a697d83ac31637d308d631a.png
  • 倉庫:https://github.com/target/goalert

  • Github Star:1.7K

GoAlert 是一個開源的 oncall 調度程序和通知程序(類似于 PagerDutyOpsgenie)。

他的后端是 Go 實現的,使用 Apollo (GraphQL) 進行數據獲取,使用 react-router 實現路由,使用 Redux 進行狀態管理,Cypress 進行端到端測試,使用 Material UI 用于樣式組件,使用原生的 CSS 編寫樣式。

最后

參考鏈接:https://maxrozen.com/examples-of-large-production-grade-open-source-react-apps

我在阿里招前端,我該怎么幫你?(現在還可以加模擬面試群)
如何拿下阿里巴巴 P6 的前端 Offer
如何準備阿里P6/P7前端面試--項目經歷準備篇
大廠面試官常問的亮點,該如何做出?
如何從初級到專家(P4-P7)打破成長瓶頸和有效突破
若川知乎問答:2年前端經驗,做的項目沒什么技術含量,怎么辦?

如何準備20K+的大廠前端面試

62ee21b634e754015b135e45b0f3e3ab.gif

·················?若川簡介?·················

你好,我是若川,畢業于江西高校。現在是一名前端開發“工程師”。寫有《學習源碼整體架構系列》20余篇,在知乎、掘金收獲超百萬閱讀。
從2014年起,每年都會寫一篇年度總結,已經堅持寫了8年,點擊查看年度總結。
同時,最近組織了源碼共讀活動,幫助4000+前端人學會看源碼。公眾號愿景:幫助5年內前端人走向前列。

b2e5bd0cd30bea38e639a4aa972dcb55.jpeg

掃碼加我微信 lxchuan12、拉你進源碼共讀

今日話題

目前建有江西|湖南|湖北?籍 前端群,想進群的可以加我微信 lxchuan12?進群。分享、收藏、點贊、在看我的文章就是對我最大的支持~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274568.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274568.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274568.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

成年人的樣子是什么樣子_不只是看樣子

成年人的樣子是什么樣子As a branding, packaging, and digital product designer, both at Input Logic and as a freelancer, I work with clients across a wide array of industries, and am responsible for simultaneously getting to the heart of what each client wan…

HDU 3664 Permutation Counting(DP)

題目鏈接 弱爆啦,組合弱爆了,反正是沒想出來怎么搞這個題,其實這個公式不難推啊,反正就是沒推出來。今天隊內賽,實在是沒辦法了,暴力寫了個DFS,先把10以內的打出表來,發現類似楊輝三…

如何在工作中打造影響力,帶動同事?

大家好,我是若川。持續組織了近一年的源碼共讀活動,感興趣的可以 加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

谷歌maps菜單語言設置_Google Maps:拯救未來之路— UX案例研究

谷歌maps菜單語言設置I have a lousy sense of direction, so Google Maps has always been my right-hand app. On a whim last year, I decided to skip the beach and sunburn and head to Budapest for spring break. That’s when Google Maps became my best friend.我的…

this和prototype

this出現在構造函數中,更多的是表示一種特有的屬性; prototype主要用于拓展函數的屬性,方法。 在函數類實例化的時候,this的屬性需要復制相應的副本,prototype不用。 function Blog(title,content) { this.titletitle;…

1萬小時后,我從外包走進了字節跳動,現在出了一本書,文末送書!

謹以此書獻給相信“努力有用”的你by 大史不說話《 前端跨界開發指南:JavaScript工具庫原理解析與實戰》先做個自我介紹我是大史不說話,是一名前端工程師,一個相信“努力有用”的、不太聰明的、行動力還可以的程序員。曾經因為一篇《10000小時…

視覺設計師跟平面設計_使設計具有視覺吸引力

視覺設計師跟平面設計Interaction Design is very gratifying.交互設計非常令人滿意。 From fast critical thinking to extracting ideas in tangible forms within the team is sure fun and challenging.從快速的批判性思維到在團隊內部以有形的形式提煉想法,無…

ExtJs4 筆記 Ext.tab.Panel 選項卡

本篇講解選項卡控件。 一、基本選項卡 首先我們來定義一個基本的選項卡控件,其中每個Tab各有不同,Tab的正文內容可以有三種方式獲取: 1.基本方式:通過定義html和items的方式。 2.讀取其他html的信息:通過設置contentEl就可以獲取其他html的信…

一直刷不動算法題,懷疑人生?試試五毒掌法!

大家好,我是若川。持續組織了近一年的源碼共讀活動,感興趣的可以 加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

還在用開發者工具上傳小程序? 快來試試 miniprogram-ci 提效摸魚

1. 前言大家好,我是若川。持續組織了近一年的源碼共讀活動,感興趣的可以 加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含包含jQuery、underscore、lo…

ListView幾個比較特殊的屬性

Android:stackFromBottom"true" 設置該屬性之后你做好的列表就會顯示在列表的最下面,值為true和false android:transcriptMode"alwaysScroll" 要用ListView或者其它顯示大量Items的控件實時跟蹤或者查看信息,并且希望最新的…

超級瑪麗馬里奧版下載_將超級馬里奧賦予生命

超級瑪麗馬里奧版下載Have you ever seen a zoetrope? If today’s sophisticated computer animation is the latest evolution of the form, then the remarkable zoetrope is a crucial ancestor; the transitional form between the drawing and the animation.等皆你見過…

如何在繁重的工作中持續成長?

大家好,我是若川。持續組織了近一年的源碼共讀活動,感興趣的可以 加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

Mono for Android 對話框 倒計時

UI調度:public class Dispatcher : Handler { public override void HandleMessage(Message msg) { var ai msg.Obj as ActionItem; if (ai ! null) { try { …

熊kong作品資源鏈接_Kong雀技術:向世界展示您的設計作品

熊kong作品資源鏈接The door opened and I entered the bedroom of an apartment I was looking to rent. No furniture or items inside, it was almost empty except for a frame in the wall. It was a photo of a peacock. As I stared at it, I could not shake one clear…

漫談前端工程化基建和架構設計 | 留言送書

大家好,我是若川。持續組織了近一年的源碼共讀活動,感興趣的可以 加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。本文留言抽獎送書,具體規則看文末。透過工程基建,架構有跡可循。前…

oracle中 rownum與rowid的理

一、 Oracle分頁查詢 我們先看學習一下oracle分頁查詢的語法示例,然后在具體學習用rownum的原理。 /*從第1條開始,每次選N個,從第1M個開始每次選N個*/ /**/ select t2.* from (select rid from (select r.rid, rownum linenum from (select r…

設計模式 日志系統設計_模式:我們設計系統的故事

設計模式 日志系統設計Design Patterns are some of the most over-used concepts in design today. And we all know what happens when you have some ideas all over the place. We start repeating them like parrots and applying them to everything, therefore distorti…

前端好還是后端好,看看7年前端和后端怎么說

大家好,我是若川。持續組織了近一年的源碼共讀活動,感興趣的可以 加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

提升UI技能的5個步驟

element ui 步驟重點 (Top highlight)What to do when you know how to use the software and know the basics of designing interfaces? There are a few simple things that you can do to take your skills to the next level, and you don’t need to invest in expensiv…