React 16.6引入了Suspense,它能夠在某些時候(比如通過API調用獲取數據)暫停渲染並展現一個加載中的指示器。
在常見的簡單場景中,React Suspense消除了使用Redux的必要性,React專家Ryan Florence這樣說到:
如果你使用Redux的主要場景是將其作爲服務端數據的客戶端緩存,那麼Suspense可以取代對Redux的使用。我之所以考慮這樣做是因爲這樣能夠讓代碼更簡潔,同時能夠有效管理spinner。
對於更復雜的狀態管理,比如同步狀態到API和localStorage,Redux這種方式所提供的價值超過了Suspense。
Bartosz Szczeciński是來自波蘭GFT的軟件工程師,他認爲Suspense將會對React的使用產生重要的影響:
我們可能會看到許多庫會率先採用這種解決方案,並且必須調整我們的最佳實踐(在Render中調用AJAX請求突然間變得可行了),但我相信通過這種方式我們能夠爲用戶創建更好的應用程序和體驗!
React 16.6發佈版本只包含了Suspense的一個使用場景,即通過React.lazy()
和<React.Suspense>
實現懶加載組件。React優化代碼切分的方式以及Suspense的用法都包含在React代碼切分指南文檔中。
除了代碼切分之外,React團隊還計劃爲Suspense添加額外的功能,包括處理數據抓取以及與GraphQL庫的集成。
React是遵循MIT許可證的開源軟件。React鼓勵開發者在遵循React貢獻指南和Facebook開源準則的前提下,通過React GitHub項目爲其做出貢獻和提供反饋。