關於 Redux-Saga
redux-saga
是個程式庫,目標是讓應用程式的副作用(例如,資料擷取等非同步事件,以及存取瀏覽器快取等不純事件)更容易管理、執行更有效率、更容易測試,以及能更好地處理錯誤。
心智模型是把「saga」視為應用程式中一個獨立執行緒,它單獨負責副作用。redux-saga
是一個 redux 中間軟體,表示這個執行緒可以透過一般的 redux 動作從主應用程式啟動、暫停和取消,它可以存取完整的 redux 應用程式狀態,也可以傳送 redux 動作。
它使用稱為「生成器」的 ES6 功能,讓這些非同步流程變得很容易閱讀、撰寫和測試。(如果您不熟悉它們,這有一些入門連結) 透過這麼做,這些非同步流程看起來就像標準同步 JavaScript 程式碼。(有點像 async
/await
,但生成器還有一些我們需要的更棒的功能)
您可能以前使用過 redux-thunk
來處理數據擷取。與 redux thunk 相反,您不會陷入 callback 地獄中,您可以輕鬆地測試您的非同步流程,而您的操作仍然是純粹的。