iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
Modern Web

前端技術研究系列 第 11

Redux Toolkit 入門課

  • 分享至 

  • xImage
  •  

先前提到那麼多 Redux ,也來看看 Redux 官方提到的推薦寫法吧 - Redux Toolkit

前言:

Redux Toolkit旨在成為編寫 Redux 邏輯的標準方式。
它的創建是為了幫助解決關於 Redux 的三個常見問題

  1. 配置 Redux store 太複雜了
  2. 必須添加很多額外套件才能讓 Redux 更實用
  3. Redux 需要太多“模組化程式碼(boilerplate code)”
    boilerplate code⇒不重要,但是没它不行的code

基本 APIs 介紹

Redux Toolkit主要包含以下APIs:

  • configureStore():
    在 redux 中原本就有 createStore 這個方法,而透過 configureStore()可以簡化createStore設定的流程、結合 slice reducers、添加和 Redux 有關的 middleware、並可使用 Redux DevTools的擴充,包含redux-thunk。

  • createReducer():
    此功能是提供一張action typereducer的查找表,而非使用switch語法。

  • createAction():
    這個工具會根據 action type 回傳對應的 action creator function,這個函式本身內建 toString(),因此可以不再額外定義 TYPE 常數。能有效簡化在 redux 中需要先定義 action type 的常數,以及在 action 中載入這個 action type 常數的冗長步驟。
    補充:action 是一個帶有 type 和 payload 的「物件」;action creator 是一個會產生 action 的「函式」。因此,這裡的 createAction 實際上是產生一個 action creator 而不是產生一個 action。

  • createSlice():
    它能帶入 reducer functions, slice name,以及initial state value。 且自動生成含有對應 action creatorsaction types的slice reducer 。
    透過 createSlice 將自動產生action creatorsaction types,說到這邊大家有發現createSlice好像有包含createAction 和 createReducer的類似功能了吧,如果能夠在一個地方同時建立 action creator、reducers 的話,管理更為方便。

  • createAsyncThunk:
    用來處理非同步,會接受一個 action type 和一個回傳 promise 的 callback function,最後回傳一個 thunk action creator。

  • createEntityAdapter:
    生成一組預設 reducer 和selector,用於對數據及狀態執行 CRUD 操作。

  • createSelector:
    來自 Reselect library,RTK 重新匯出讓他更容易使用。

補充:
thunk為一個能在其中呼叫另一個子程序(subroutine)的子程序。
將這個概念用在Redux-Thunk上,便是包裝一個action creator為一個thunk。原生概念的action creator是回傳一個action(object);而若是「thunk化」的action creator,則回傳一個function。在Redux中藉由Redux-Thunk這個Redux Middleware讓我們可以在使用時不去區分pure action creator還是thunk action creator

明天再在帶大家來解讀官網的程式碼,感謝閱讀~


上一篇
什麼是 Axios
下一篇
Redux Toolkit 基礎應用
系列文
前端技術研究30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言