60+ 實用 React 工具庫,助力你高效開發!

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

最近看到一些實用的React工具庫,總結了一下分享給大家,避免重復造輪子。希望對你有所幫助~

一、基礎

1. React Infinite Scroller

React Infinite Scroller 用于在React項目中無限滾動加載內容。

npm地址:https://www.npmjs.com/package/react-infinite-scroller

2. react-dnd

React DnD是React和Redux核心作者 Dan Abramov創造的一組React 高階組件,可以在保持組件分離的前提下幫助構建復雜的拖放接口。主要用于組件的拖放。

npm地址:https://www.npmjs.com/package/react-dnd

3. react-beautiful-dnd

react-beautiful-dnd是一款美觀且簡單易用的 React 列表拖拽庫。

npm地址:https://www.npmjs.com/package/react-beautiful-dnd

4. react-icons

使用 react-icons 可以輕松地在 React 項目中包含流行的圖標。

npm地址:https://www.npmjs.com/package/react-icons

5. react-share

react-share是一個React 的社交媒體分享按鈕和分享次數庫。

npm地址:https://www.npmjs.com/package/react-share

6. create-react-app

Create React App 是一個命令行界面工具,讓您無需任何配置即可快速創建和運行 React 應用程序。

npm地址:https://www.npmjs.com/package/create-react-app

7. react-intl

React Intl 提供了一個 React 組件和用于國際化 React Web 應用的 Mixin。它提供一個格式化日期、數字、字符串消息的描述方式。

npm地址:https://www.npmjs.com/package/react-intl

8. react-router

react-router 是個用于 React.js 的路由解決方案(routing solution)。它輕松可以同步你的 app 和 URL,同時給嵌套,轉換,和服務端渲染一流的支持。

npm地址:https://www.npmjs.com/package/react-router

9. React Virtualized

react-virtualized是一個以高效渲染大型列表和表格數據的響應式組件,可以用來解決長列表渲染問題。

npm地址:https://www.npmjs.com/package/react-virtualized

二、狀態管理

1. redux

Redux 是 JavaScript 狀態容器,提供可預測化的狀態管理。可以讓你構建一致化的應用,運行于不同的環境(客戶端、服務器、原生應用),并且易于測試。

npm地址:https://www.npmjs.com/package/redux

2. react-redux

Redux 官方提供的 React 綁定庫。具有高效且靈活的特性。

npm地址:https://www.npmjs.com/package/react-redux

3. MobX

MobX是一個經久考驗的庫,使得狀態管理簡單而且透明、可伸縮的應用功能反應性編程(TFRP)。

npm地址:https://www.npmjs.com/package/mobx

4. redux-saga

redux-saga是一個用于管理應用程序 Side Effect(副作用,例如異步獲取數據,訪問瀏覽器緩存等)的庫,它的目標是讓副作用管理更容易,執行更高效,測試更簡單,在處理故障時更容易。

npm地址:https://www.npmjs.com/package/redux-saga

5. redux-thunk

Redux 的 Thunk 中間件。

npm地址:https://www.npmjs.com/package/redux-thunk

三、組件

1. Ant Design

antd 是基于 Ant Design 設計體系的 React UI 組件庫,主要用于研發企業級中后臺產品。

官網地址:https://ant.design/index-cn

2. React Select

React Select 是一個開箱即用的 Select 控件。

官網地址:https://react-select.com/home

3. React Hot Toast

React Hot Toast 是一個熱門的通知庫,包含很多通知的樣式。

官網地址:https://react-hot-toast.com/

4. React Content Loader

React Content Loader 可以用于生成列表加載占位組件。

官網地址:https://skeletonreact.com/

5. Sweet Alert

Sweet Alert是一個彈窗組件,包含很多彈窗樣式。

官網地址:https://sweetalert.js.org/

6. draftjs

Draft JS 是一個富文本編輯器庫。可以無縫地融入 React 應用程序。

官網地址:https://draftjs.org/

7. react-slick

React Slick是一個React輪播組件。

官網地址:https://react-slick.neostack.com/

8. Material-UI

Material-UI是一個簡單的、可定制的組件庫,用于構建更快、更漂亮、更易使用的 React 應用程序。

官網地址:https://mui.com/zh/getting-started/usage/

9. react-bootstrap

React Bootstrap是一個由 React 構建的 Bootstrap 4 組件。

官網地址:https://react-bootstrap.github.io/

10. react-custom-scrollbars

react-custom-scrollbars 是一個滾動條組件庫,可以在web和移動端流暢的使用滾動條,并且可以完全自己定制

npm地址:https://www.npmjs.com/package/react-custom-scrollbars

11. react-dropdown

react-dropdown 是一個簡單的下拉組件,靈感來自于react-select。

npm地址:https://www.npmjs.com/package/react-dropdown

12. react-horizontal-scrolling-menu

react-horizontal-scrolling-menu 是一個水平滾動菜單組件。

npm地址:https://www.npmjs.com/package/react-horizontal-scrolling-menu

13. react-calendar

react-calendar 是一個 React 的日歷組件。

npm地址:https://www.npmjs.com/package/react-calendar

14. react-datepicker

react-datepicker是一個日期選擇組件。

npm地址:https://www.npmjs.com/package/react-datepicker

15. react-table

react-table 是一個強大的表格組件。

npm地址:https://www.npmjs.com/package/react-table

16. react-awesome-button

react-awesome-button 是一個按鈕組件庫。

npm地址:https://www.npmjs.com/package/react-awesome-button

17. react-compound-slider

react-compound-slider 是一個滑塊組件。

npm地址:https://www.npmjs.com/package/react-compound-slider

18. react-checkbox-tree

react-checkbox-tree 是一個復選框組件。

npm地址:https://www.npmjs.com/package/react-checkbox-tree

19. recharts

recharts 是一個React圖表庫。

npm地址:https://www.npmjs.com/package/recharts

20. react-modal

react-modal 是一個靜態動畫庫組件庫。

npm地址:https://www.npmjs.com/package/react-modal

21. react-responsive-carousel

react-responsive-carousel 是一個響應式的輪播組件庫。

npm地址:https://www.npmjs.com/package/react-responsive-carousel

22. react-image-lightbox

react-image-lightbox 是一個用于顯示圖片的組件庫。

npm地址:https://www.npmjs.com/package/react-image-lightbox

23. react-tabs

react-tabs 是一個選項卡組件。

npm地址:https://www.npmjs.com/package/react-tabs

24. rebass

Rebass是一個用于構建響應式WEB應用的React UI工具包,它有60多種可定制的基礎組件,而且風格樣式分離,不需要編寫自定義的CSS。

官網地址:https://rebassjs.org/

25. react-suite

React Suite是一套轉為后端打造的企業級UI組件庫,它由 HYPERS 前端團隊與 UX 團隊共同打造,有大量的通用組件和功能,而且支持 Typescript 與 Flow, 支持服務端渲染。

官網地址:https://rsuitejs.com/

四、動畫

1. react-spring

react-spring是基于spring-physics(彈簧物理)的react動畫庫,動畫效果更加流暢、自然。

npm地址:https://www.npmjs.com/package/react-spring

2. react-motion

react-motion是一個強大的react動畫庫。npm地址:https://www.npmjs.com/package/react-motion

3. react-transition-group

react-transition-group是一個專為動畫設計的庫。

npm地址:https://www.npmjs.com/package/react-transition-group

4. react-spinner

react-spinner用來創建加載組件。

npm地址:https://www.npmjs.com/package/react-spinner

五、HTTP

1. Axios

Axios 是一個基于 promise 的 HTTP 庫,可以用在瀏覽器和 node.js 中。

npm地址:https://www.npmjs.com/package/axios

2. apisauce

apisauce 是一個建立在 axios 之上的 http 客戶端。官方介紹:Axios + standardized errors + request/response transforms.

npm地址:https://www.npmjs.com/package/apisauce

3. SuperAgent

SuperAgent 是一個輕量的Ajax API,服務器端(Node.js)客戶端(瀏覽器端)均可使用,SuperAgent具有學習曲線低、使用簡單、可讀性好的特點,可作為客戶端請求代理模塊使用,當想處理get,post,put,delete,head請求時,可以考慮使用SuperAgent。

npm地址:https://www.npmjs.com/package/superagent

六、CSS

1. styled-components

styled-components 可以在 JavaScript 代碼中使用 CSS 來設置 React 組件的樣式。通過這個庫可以自定義組件的樣式,它會將給定的樣式包裝成一個組件,可以直接使用這個組件,也不需要組件和樣式之間的映射,即創建后就是一個正常的React 組件。

npm地址:https://www.npmjs.com/package/styled-components

2. emotion

emotion是JS庫中一種高效靈活的CSS。基于JS庫中的許多其他CSS,它允許您使用字符串或對象樣式快速設置應用程序樣式。它具有可預測的組成,以避免CSS的特殊性問題。

npm地址:https://www.npmjs.com/package/emotion

七、測試

1. @testing-library/react

React Testing Library 基于DOM Testing Library的基礎上添加一些API,主要用于測試React組件。該庫在使用過程并不關注組件的內部實現,而是更關注測試。該庫基于react-dom和react-dom/test-utils,是以上兩者的輕量實現。

npm地址:https://www.npmjs.com/package/@testing-library/react

2. Enzyme

Enzyme 來自 airbnb 公司,是一個用于 React 的 JavaScript 測試工具,方便你判斷、操縱和遍歷 React Components 輸出。

npm地址:https://www.npmjs.com/package/enzyme

八、表單

1. react-hook-form

React Hook Form是一個高性能、靈活、易拓展、易于使用的表單校驗庫,用于React Web&Native的表單驗證。

官網地址:https://react-hook-form.com/

2. Formik

Formik是由React組件和hooks組成,它內置了表單的state管理操作,無需我們在單獨為表單建立state,同時使用了Context,能夠讓表單組件多層嵌套,不再需要我們一層層傳遞。

npm地址:https://www.npmjs.com/package/formik

3. react-use-form-state

react-use-form-state是一個小型 React Hook,它使用原生表單輸入元素來簡化管理表單的狀態。

npm地址:https://www.npmjs.com/package/react-use-form-state

九、自定義Hooks

1. use-clippy

use-clippy 是一個用 TypeScript 實現的自定義 React Hook,可以用于讀取和寫入用戶的剪貼板。

npm地址:https://www.npmjs.com/package/use-clippy

2. react-window-communication-hook

react-window-communication-hook 可以實現在瀏覽器上下文(窗口、選項卡、iframes)之間進行通信。

npm地址:https://www.npmjs.com/package/react-window-communication-hook

3. react-speech-kit

react-speech-kit 是一個用于瀏覽器內語音識別和語音合成的 React hook。簡單來說就是可以將聲音識別為文字,將文字合成為語音。

npm地址:https://www.npmjs.com/package/react-speech-kit

4. react-script-hook

react-script-hook是一個用于動態加載(并在加載時通知)外部腳本的鉤子。

npm地址:https://www.npmjs.com/package/react-script-hook

5. use-mouse-action

use-mouse-action 是一個有三個React hook的庫,用于偵聽元素或 JSX 元素上的鼠標事件。包括鼠標操作、鼠標按下、鼠標抬起事件。

npm地址:https://www.npmjs.com/package/use-mouse-action

6. @rehooks/online-status

@rehooks/online-status 用于檢查網絡狀態以確定用戶是否已連接到網絡。

npm 地址:https://www.npmjs.com/package/@rehooks/online-status

7. @rehooks/document-title

@rehooks/document-title 用于更新頁面標題(顯示在瀏覽器的選項卡中)。

npm地址:https://www.npmjs.com/package/@rehooks/document-title

8. useHooks

自定義hook庫,包含很多實用的Hooks。

官網地址:https://usehooks.com/

9. react-hanger

react-hanger是一個自定義React Hooks庫,它包含很多實用的自定義hooks。

npm地址:https://www.npmjs.com/package/react-hanger

870bc2466c1042c18cd4f86d5c6cf729.gif

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

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

7e4992f0db6ed856e87600744aaeeea6.png

識別方二維碼加我微信、拉你進源碼共讀

今日話題

略。分享、收藏、點贊、在看我的文章就是對我最大的支持~

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

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

相關文章

2012年12月第二個周末

2019獨角獸企業重金招聘Python工程師標準>>> 這周,裝上了windows版的 Linux版的oracle 熟悉了下SQL*PLUS的編程規則,還有常用的linux命令 看了一本《簡愛》 正在看oracle 轉載于:https://my.oschina.net/u/204616/blog/545513

『C#基礎』調用CMD的一個小工具

由于經常要使用CMD的一些命令,比如查看IP,Ping一個網址之類的。于是就寫了一個調用CMD.exe的小工具。 主要就是實現這樣一個事情:調用CMD.exe然后傳給它我想要執行的命令,最后獲取結果。 界面: 代碼: 主要執…

小姐姐:如何參與大型開源項目-Taro 共建

大家好,我是若川。持續組織了5個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。“本文來自前端程序…

JavaWeb學習總結(十七)——JSP中的九個內置對象

2019獨角獸企業重金招聘Python工程師標準>>> 一、JSP運行原理 每個JSP 頁面在第一次被訪問時,WEB容器都會把請求交給JSP引擎(即一個Java程序)去處理。JSP引擎先將JSP翻譯成一個_jspServlet(實質上也是一個servlet) ,然…

C#網絡編程(異步傳輸字符串) - Part.3[轉自JimmyZhang博客]

源碼下載:http://www.tracefact.net/SourceCode/Network-Part3.rar C#網絡編程(異步傳輸字符串) - Part.3 這篇文章我們將前進一大步,使用異步的方式來對服務端編程,以使它成為一個真正意義上的服務器:可以為多個客戶端的多次請求…

chrome黑暗模式_黑暗模式:如何克服黑暗面

chrome黑暗模式This article has been written by Redmadrobot Design Lab. Translated and reposted with permission by Alconost Inc., professional translation and localization company.本文由 Redmadrobot設計實驗室 撰寫 。 經過 專業翻譯和本地化公司 Alconost Inc.的…

Deco 智能代碼體驗版正式上線啦,快來體驗設計稿一鍵生成代碼~

Deco 是什么?—Deco 智能代碼項目是我們團隊在「前端智能化」方向上的探索,其聚焦設計稿一鍵生成多端代碼這一切入點,實現將 Sketch/Photoshop 等設計稿進行解析并直接生成多端代碼(Taro/React/Vue)的能力。Deco 可以使…

jQuery 五角星評分

五角星打分 我用的是搜狗輸入法上帶的特殊符號打出來的 空五角星&#xff1a;☆ 實五角星&#xff1a;★ 1.html 1 <ul class"comment"> 2 <li>☆</li> 3 <li>☆</li> 4 <li>☆</li> 5 …

平面設計和網頁設計的規則_從平面設計到用戶界面:這是您應該知道的最重要的規則

平面設計和網頁設計的規則Maybe you’re here because you think UI Design is the future of Graphic Design. Maybe what motivates you is the money. Or maybe you just woke up one day and someone at work told you “So, you are a designer, right? Well, we need an…

即將到來的 ECMAScript 2022 新特性

大家好&#xff0c;我是若川。持續組織了5個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。ECMAScript 規范每…

代碼備忘錄

1.用指針&#xff0c;函數調用實現交換兩個變量值 #include<stdio.h> int exchange(int *a,int *b){ int temp; temp*a; *a*b; *btemp;return 0;} int main(){ int i9,j2; int *p1,*p2; p1&i; p2&j; exchange(p1,p2); printf("p1%d,p2%d\n",*p1,*p2);…

mysql實戰38 | 都說InnoDB好,那還要不要使用Memory引擎?

我在上一篇文章末尾留給你的問題是&#xff1a;兩個 group by 語句都用了 order by null&#xff0c;為什么使用內存臨時表得到的語句結果里&#xff0c;0 這個值在最后一行&#xff1b;而使用磁盤臨時表得到的結果里&#xff0c;0 這個值在第一行&#xff1f;今天我們就來看看…

設計類的五個原則_內容設計的5個原則

設計類的五個原則重點 (Top highlight)There are many heuristics and principles for creating good content. Some are created from a UX perspective, others from a content marketing point of view. They range from very long to very concise ones. I reviewed a larg…

Umi 4 RC 發布

大家好&#xff0c;我是若川。感謝大家一年以來的支持和陪伴。這一年疫情反復&#xff0c;年底應該有由于疫情不能回家的小伙伴。在這里先祝福大家&#xff0c;新年快樂。本打算今天不發文&#xff0c;但看到這篇覺得不錯&#xff0c;就發一下。大家好&#xff0c;Umi 4 經過幾…

讓你沉迷的五種設計

讓你沉迷的五種設計 好游戲總是能令人沉迷其中無法自拔&#xff0c;外媒cracked經過分析&#xff0c;發現有五種設計方法必不可少&#xff1b; 1.斯金納箱原理&#xff1a;這是行為心理學派在實驗室內研究動物學習能力的箱形實驗裝置&#xff0c;游戲開發也得益于此&#xff0c…

Java學習路線詳解

有很多的[Java請添加鏈接描述](http://www.hfxms.com.cn/java/)程序員&#xff0c;在初期學習時&#xff0c;通常會對如何學習而感到迷茫。[合肥學碼思請添加鏈接描述](http://www.hfxms.com.cn/)小編就為大家分析如何學好Java編程&#xff0c;相信能幫助那些正在處于迷茫狀態的…

figma下載_在Figma中將約束與布局網格一起使用

figma下載While doing research for the book “Designing in Figma”, I discovered a powerful way to lay out objects using a combination of Layout Grid and Constraints. The interface of Figma does not indicate a connection between the two, so it can be discov…

換一種方式表達

http://player.youku.com/player.php/sid/XMjY2MTE5NDU2/v.swf 轉載于:https://www.cnblogs.com/JCSU/archive/2012/03/17/2403324.html

新的一年,碎片化學習前端,我推薦這幾個公眾號~

大家好&#xff0c;我是若川。假期余額不足&#xff0c;無法充值。快樂的時光總是短暫的。馬上又開始一年的學習和“奮斗”。前端技術日新月異&#xff0c;發展迅速&#xff0c;作為一個與時俱進的前端工程師&#xff0c;需要不斷的學習。這里強烈推薦幾個前端開發工程師必備的…

Java單元測試之JUnit4詳解

2019獨角獸企業重金招聘Python工程師標準>>> Java單元測試之JUnit4詳解 與JUnit3不同&#xff0c;JUnit4通過注解的方式來識別測試方法。目前支持的主要注解有&#xff1a; BeforeClass 全局只會執行一次&#xff0c;而且是第一個運行Before 在測試方法運行之前運行…