前幾天我調到了新的部門。我的新同事給了我一個重構現有 React 專案的任務。
當我閱讀程式碼時,我對Context API的使用方式感到震驚。先前的編碼員將所有內容(是的,幾乎所有內容)放入 Context 物件中,將其視為管理所有狀態甚至某些本地臨時狀態的儲存。太瘋狂了!
他也在一個 .ts 檔案中的一個(是的,絕對只有一個)元件中編寫了頁面的所有內容。我很難在腦海中弄清楚程式碼的邏輯。但我仍然接受這些狗屎代碼(我別無選擇),所以我做出一個重大決定:我將用 Mobx 在一周內重寫所有這些頁面,並將程式碼拆分為不同的功能組件。
透過 Mobx,我創建了多個儲存來處理來自 API 的所有數據,並將一個巨大的元件拆分為不同的小塊;一切開始變得清晰和簡單。本地狀態應該在它使用的範圍內,公共部分將從 Mobx 的儲存中取得。
終於徹底刪除了Context對象,幾千行程式碼被刪除了,世界又安靜了!
我想說一下Context API。如果你確實有一些東西,例如一些全域配置資訊要共享給整個應用程序,你可以使用 Context API,但如果你只是想避免使用一些第三方狀態管理庫,那麼將上下文視為一個壞主意替代品。
讓 Context 成為 Context,讓狀態由像 Mobx 這樣的函式庫來管理。
請停止濫用 React Context API!
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3