ReactJS中不同類型的狀態(tài)詳解
引言
在這篇文章中,我們將介紹ReactJS中不同類型的狀態(tài),以及我們是如何輕易地將這些類型混為一談的。我們還將討論哪種狀態(tài)應該使用哪種工具/庫/包。這篇文章將充滿了多汁的技術,所以要保持專注。所以不要浪費任何時間,讓我們開始吧
誤解
在已經(jīng)配置好redux的情況下,利用redux的一個誤區(qū)是當開發(fā)者開始為他們應用中的所有狀態(tài)使用redux時,這樣做是為了避免道具的鉆取,并通過用商店包裝你的應用,在你的應用的各個層面上 訪問數(shù)據(jù)。但是,將服務器端的異步數(shù)據(jù)也存儲在你的存儲中,這就是問題所在。通過這樣做,你試圖每次都同步你的服務器狀態(tài),無論它在服務器端是否被更新,這都會扼殺你的應用程序的性能。比如說
// Global state maintaining client and server-side state const globalState = { authors, books, readers, libraries, darkMode, sidebarStatus, }
現(xiàn)在我們的全局狀態(tài)正在處理作者、書籍、讀者 和圖書館,這些都是服務器端的狀態(tài),而且效率不高,每次都要請求新數(shù)據(jù)。
服務器端狀態(tài)與客戶端狀態(tài)
// Global state without server-side state const globalState = { darkMode, sidebarStatus, }
現(xiàn)在我們已經(jīng)把服務器端狀態(tài)從我們的全局狀態(tài)中移除,并在我們的客戶端狀態(tài)管理庫中處理它們的所有麻煩事。
我們的想法是有兩個真相來源,前端(客戶端狀態(tài))和另一個是后端(服務器端狀態(tài))。 你繼續(xù)使用redux、context、mobx或任何其他全局狀態(tài)管理工具來處理客戶端狀態(tài),同時使用React Query來處理服務器端狀態(tài)。
什么是React Query?
- React查詢是一個服務器端的庫,它可以幫助你保持服務器和客戶端之間的通信順暢,并以較少的代碼提高性能。
- 它對TS/JS、React、Vue、Svelte和Solid的異步狀態(tài)管理非常強大。
- 你可以手動重新獲取、緩存、刷新、延遲加載、分頁,并對你的服務器端數(shù)據(jù)做很多事情。
React query提供了像useQuery和useMutation這樣的鉤子,這些鉤子可以讓你在短時間內(nèi)啟動和運行,并允許你刪除任何用于維護服務器端狀態(tài)的模板代碼。
引擎蓋下的React查詢
總結
在這篇文章中,我們涵蓋了很多內(nèi)容,我希望你沒有在中間離開我 。如果你真的掌握了這篇文章的要點,請為自己感到驕傲,因為這篇文章是一個很難理解的內(nèi)容。 你可以學習更多關于react query的知識,這個庫還有更多的內(nèi)容。
以上就是ReactJS中不同類型的狀態(tài)詳解的詳細內(nèi)容,更多關于ReactJS不同類型狀態(tài)的資料請關注腳本之家其它相關文章!
相關文章
React數(shù)據(jù)傳遞之組件內(nèi)部通信的方法
這篇文章主要介紹了React數(shù)據(jù)傳遞之組件內(nèi)部通信的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12在create-react-app中使用css modules的示例代碼
這篇文章主要介紹了在create-react-app中使用css modules的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07